CN104160384B - 用于动态优先级控制的***和方法 - Google Patents

用于动态优先级控制的***和方法 Download PDF

Info

Publication number
CN104160384B
CN104160384B CN201380007046.XA CN201380007046A CN104160384B CN 104160384 B CN104160384 B CN 104160384B CN 201380007046 A CN201380007046 A CN 201380007046A CN 104160384 B CN104160384 B CN 104160384B
Authority
CN
China
Prior art keywords
order
priority
queue
limit priority
current command
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
CN201380007046.XA
Other languages
English (en)
Other versions
CN104160384A (zh
Inventor
朱军
J·J·曹
T-J·扬
R·鲁
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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade 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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN104160384A publication Critical patent/CN104160384A/zh
Application granted granted Critical
Publication of CN104160384B publication Critical patent/CN104160384B/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/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage 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)
  • Bus Control (AREA)
  • Advance Control (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

提供了一种用于动态地管理***控制器的先进先出(FIFO)命令队列的***和方法。将一个或者多个命令接收到命令队列中,命令与优先级参数关联。确定将在命令队列中被执行的排在第一位的当前命令,该当前命令与第一优先级参数关联。确定与第二优先级参数关联的第二命令,第二优先级参数是在与该一个或者多个命令关联的优先级参数之中最大的。至少部分地基于第二优先级参数计算用于该当前命令的最终优先级参数。

Description

用于动态优先级控制的***和方法
相关申请的交叉引用
本公开内容要求于2012年1月27日递交的、申请号为61/591,705的美国临时专利申请的优先权和权益,该申请的全部内容通过引用并入于此。
技术领域
在本专利文献中描述的技术总体上涉及数据处理,并且更特别地涉及数据处理中的优先级控制。
背景技术
存储器***经常包括半导体存储器设备,比如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双数据速率(DDR、DDR2、DDR3等)SDRAM等。各种源设备(比如处理器、***设备(例如,输入/输出设备)、音频和视频设备)可以生成存储器操作命令,包括用于从存储器设备向源设备传送数据的读取存储器操作和从源设备向存储器设备传送数据的写入存储器操作。通常,存储器控制器被实施用于从源设备接收存储器操作命令以及控制存储器设备以响应于命令执行存储器操作。存储器控制器经常包括用于捕获存储器操作命令的命令队列。
可以作为命令的部分向存储器控制器传输存储器操作命令的优先级参数(例如,服务质量(QoS)参数)。存储器控制器可以在来自不同命令队列的存储器操作命令之中仲裁并且基于它们的相应的优先级参数调度这样的命令的执行。图1图示了调度存储器操作命令的执行的存储器控制器的示例。存储器控制器100中的仲裁器部件108基于存储器操作命令104的优先级参数106调度来自多个命令队列102的存储器操作命令104的执行。如在图1中所示,存储器控制器100包括分别对应于多个命令队列102的多个***接口端口(SIP)110。命令队列存储各自包括优先级参数106(例如,QoS)的一个或者多个存储器操作命令104。每个命令队列具有在命令队列的顶部并且因此将排在第一位被服务的当前命令。仲裁器部件108比较不同命令队列中的当前命令的优先级参数(例如,QoS),并且选择将被服务的具有最高优先级参数的一个当前命令。例如,命令队列经常以先进先出(FIFO)方式操作。也就是说,命令队列的当前命令是比命令队列中的其它命令更早被接收的命令。
发明内容
根据这里描述的教导,提供了一种用于动态地管理***控制器的先进先出(FIFO)命令队列的***和方法。将一个或者多个命令接收到命令队列中,命令与优先级参数关联。确定将在命令队列中被执行的排在第一位的当前命令,该当前命令与第一优先级参数关联。确定与第二优先级参数关联的第二命令,第二优先级参数是在与该一个或者多个命令关联的优先级参数之中最大的。至少部分地基于第二优先级参数计算用于该当前命令的最终优先级参数。
在另一实施例中,一种用于动态地管理***控制器的先进先出(FIFO)命令队列的集成电路包括:接口电路,被配置用于将一个或者多个命令接收到命令队列中,命令与优先级参数关联;监控电路,被配置用于确定将在命令队列中被执行的排在第一位的当前命令以及确定与第二优先级参数关联的第二命令,该当前命令与第一优先级参数关联,第二优先级参数是在与该一个或者多个命令关联的优先级参数之中最大的;以及选择电路,被配置用于至少部分地基于第二优先级参数计算用于该当前命令的最终优先级参数,以及在最终优先级参数满足预定条件时输出最终优先级参数以便该当前命令被选择用于执行。
在又一实施例中,一种用于动态地管理***控制器的先进先出(FIFO)命令队列的***包括一个或者多个数据处理器以及编码有编程指令的计算机可读存储器,该编程指令用于命令该一个或者多个数据处理器执行步骤。该步骤包括:将一个或者多个命令接收到命令队列中,命令与优先级参数关联;确定将在命令队列中被执行的排在第一位的当前命令,该当前命令与第一优先级参数关联;以及确定与第二优先级参数关联的第二命令,第二优先级参数是在与该一个或者多个命令关联的优先级参数之中最大的。该步骤还包括至少部分地基于第二优先级参数计算用于该当前命令的最终优先级参数,以及在最终优先级参数满足预定条件时输出最终优先级参数以便该当前命令被选择用于执行。
附图说明
图1图示了调度存储器操作命令的执行的存储器控制器的示例。
图2图示了FIFO命令队列的示例。
图3图示了生成用于命令队列中的命令的动态优先级参数的示例。
图4图示了生成用于命令队列中的命令的动态优先级参数的另一示例。
图5图示了命令队列中的命令的用于生成动态优先级参数的示例数据字段。
图6图示了基于与命令队列关联的动态优先级参数调度存储器操作命令的执行的存储器控制器的示例。
具体实施方式
再次参照图1,仲裁器部件108选择多个当前命令中的将被服务的、具有最高优先级参数的当前命令。因此,如果特定命令队列的当前命令具有低优先级参数,则这样的当前命令在其可以被服务之前可能需要等待长时间段。命令队列中的其它命令被当前命令阻塞,即使它们可能具有高优先级参数。
图2图示了FIFO命令队列的示例。具有高优先级参数的命令(例如,命令204)被具有低优先级参数的当前命令202阻塞。如在图2中所示,存储器操作命令包括用于对控制排序的标识号(“ID”)、指示用于访问存储器中的数据的存储器位置的地址(“Addr”)以及指示命令有多么紧急的优先级参数(“QoS”)。具有低优先级参数“1”(例如,QoS)的存储器操作命令202位于命令队列200的顶部并且是命令队列200的当前命令。因为当前命令202具有低优先级参数,其可能在长时间内不会被服务。因此,即使命令队列200中的其它命令可能具有高优先级参数,它们也不能得以被服务。例如,另一存储器操作命令204具有非常高的优先级参数“15”(例如,QoS)。然而,命令204在命令队列200的中部,并且因此直到在命令204之前的所有命令都被服务之前它将没有可能被服务。
作为示例,液晶显示器(LCD)控制器发送用于从存储器读取数据的命令。起初,LCD缓冲器具有待显示的充足数据,并且LCD控制器向与LCD关联的命令队列发送具有低优先级参数(例如,QoS)的读取命令。存储器控制器并未及时服务于这些读取命令,因为来自其它命令队列的命令可能具有更高优先级参数。稍后,在缓冲器不具有待显示的充足数据时,LCD控制器向与LCD关联的同一命令队列发送具有高优先级参数的读取命令。具有低优先级参数的先前读取命令仍然在命令队列中等待执行,并且阻塞具有高优先级参数的随后读取命令。这时,在缓冲器不具有待显示的数据时错误可能发生。
经常使用用于特定***接口端口的多个物理命令队列的虚拟通道方式或者多通道方式可以改善该问题,因为具有不同优先级参数的命令可以被输入到不同命令队列中并且具有高优先级参数的命令可以不被具有低优先级参数的命令阻塞。然而,实现虚拟通道方式或者多通道方式非常昂贵。另外,这样的虚拟通道方式或者多通道方式通常将遭遇不同问题。
源设备经常需要访问存储器的多个连续位置。对于每个位置,源设备通常发送出命令。来自源设备的这些命令共享同一标识号。通常,优选地按照发送出这些命令的顺序执行它们,从而使得存储器的目标位置可以被连续地访问。用于特定***接口端口的单个FIFO命令队列可以经常实现这一方式而没有任何问题,因为首先被接收的问题将首先被服务。然而,在虚拟通道方式或者多通道方式下,具有同一标识号的命令经常被发送到不同物理命令队列。通常需要附加机制以按顺序执行具有同一标识号的命令,这将增加***的复杂性和成本。
本公开内容呈现了一种方式,该方式允许命令队列中的命令根据命令队列的状态被及时服务。图3图示了生成用于命令队列中的命令的动态优先级参数的示例。仲裁器部件302接收基于命令队列306的状态被确定的动态优先级参数304(“Qos_arb”)。如果动态优先级参数304高于与其他命令队列关联的其它优先级参数,则仲裁器部件302选择命令队列306的将被服务的当前命令308。在具有高优先级参数的命令晚于当前命令308被接收到命令队列306中时,动态优先级参数304被增大以加速命令队列306的服务。在具有高优先级参数的命令被服务时,动态优先级参数304被减小以减速命令队列306的服务。
具体而言,可以实现算法以动态地确定命令队列306中的最高优先级参数。具有最高优先级参数的命令已位于命令队列306中多久可以被考虑以确定动态优先级参数304。作为示例,命令318被确定为在命令队列306中具有最高优先级参数316(“QoS_Max”)。如果命令318已位于命令队列306中长于等待时间阈值,则动态优先级参数304被确定为等于最高优先级参数316(“QoS_Max”)。在另一方面,如果命令318已位于命令队列306中不长于等待时间阈值,则动态优先级参数304被确定为等于最高优先级参数316(“QoS_Max”)和当前命令308的当前优先级参数314的总和的一半。备选地,在一些情形中,动态优先级参数304被确定为等于最高优先级参数316(“QoS_Max”),无论命令318位于命令队列306中多久。
图4图示了生成用于命令队列中的命令的动态优先级参数的另一示例。如在图4中所示,选择部件610(例如,可编程寄存器)向复用器612输出信号622(“QoS_sel”)以选择三个模式之一以用于生成用于命令队列606的动态优先级参数604。在第一模式下,动态优先级参数604总是被确定为等于命令队列606中的当前命令608的当前优先级参数614。在第二模式下,动态优先级参数604总是被确定为等于命令队列606中的最高优先级参数616。另外,在第三模式下,复用器612输出修改的优先级参数620(“QoS”)作为动态优先级参数604。
例如,修改的优先级参数620可以基于具有最高优先级参数616的命令已位于命令队列606中多久被确定。如果命令618已位于命令606中长于第一等待时间阈值,则修改的优先级参数620被确定为等于最大优先级参数616。在另一方面,如果命令618已位于命令队列606中不长于第一等待时间阈值,则修改的优先级参数620被确定为等于最大优先级参数616和当前优先级参数614的总和的一半。
另外,当前命令608已位于命令队列606中多久可以被考虑以确定修改的优先级参数620。作为示例,如果命令618已位于命令队列606中长于第一等待时间阈值并且当前命令608已位于命令队列606中长于第二等待时间阈值,则修改的优先级参数620被确定为等于第一值。如果命令618已位于命令队列606中不长于第一等待时间阈值并且当前命令608已位于命令队列606中长于第二等待时间阈值,则修改的优先级参数620被确定为等于第二值。如果命令618已位于命令队列606中长于第一等待时间阈值并且当前命令608已位于命令队列606中不长于第二等待时间阈值,则修改的优先级参数620被确定为等于第三值。另外,如果命令618已位于命令队列606中不长于第一等待时间阈值并且当前命令608已位于命令队列606中不长于第二等待时间阈值,则修改的优先级参数620被确定为等于第四值。例如,第一值和第三值等于最大优先级参数616,并且第二值和第四值等于最大优先级参数616和当前优先级参数614的总和的一半。
图5图示了命令队列中的命令的用于生成动态优先级参数的示例数据字段。命令队列400中的每个命令包括与生成动态优先级参数有关的三个数据字段:指示命令是否有效的有效性因素(“V”)、指示命令的等待时间(即,命令位于命令队列400中多久)的等待时间因素(“WT”)以及原优先级参数(“QoS_org”)。例如,在命令的有效性因素为1时,命令有效,以及在有效性因素为0时,命令无效。在有效命令被接收到命令队列400中时该命令的等待时间因素开始增加,直到达到最大值,并且在命令被弹出命令队列400时被清零。读取指针410(“rd_ptr”)指向当前命令412,并且在当前命令412被弹出命令队列400时增加一。写入指针408(“wr_ptr”)指向命令队列400中的用于接收新命令的下一可用位置,并且在新命令被接收时增加一。作为示例,命令队列400以循环FIFO方式被管理。
二维数组QoS_Info[Q_Size-1∶0][Entry_Size-1∶0]可以被定义用于存储用于生成动态优先级参数的上述数据字段的信息,其中Q_Size指示在命令队列400中可以存储多少命令,并且Entry_Size代表有效性因素、等待时间因素和原优先级参数的大小的总和。
命令队列400中的有效命令的最大优先级参数可以被如下确定:
具有最大优先级参数的命令的等待时间因素被如下确定:
WT_Max_QoS=QoS_Info[max_loc].WT
当前命令的等待时间因素被如下确定:
WT_Cur=QoS_Info[rd_ptr].WT
对于在图3中讨论的第一模式,动态优先级参数被如下确定:
QoS’=QoS_Info[rd_ptr].QoS_org
对于第二模式,动态优先级参数被如下确定:
QoS’=QoS_max
另外,对于第三模式,动态优先级参数基于第一等待时间阈值(“THR1”)和第二等待时间阈值(“THR2”)被如下确定:
图6图示了基于与命令队列关联的动态优先级参数调度存储器操作命令的执行的存储器控制器的示例。存储器控制器500中的仲裁器部件502基于与命令队列504关联的动态优先级参数506(“QoS-arb”)分别调度来自多个命令队列504的存储器操作命令的执行。仲裁器部件502比较与命令队列504关联的动态优先级参数506(“QoS-arb”),并且通过复用器510选择命令队列的具有最高动态优先级参数的当前命令。选择的当前命令被输出到存储器命令调度器512(例如,DDR命令调度器)以被服务。命令队列504分别对应于多个***接口端口(SIP)508。
这一书面描述使用示例来公开包括最佳方式的本发明,并且还使本领域技术人员能够制作和使用本发明。本发明的可专利范围可以包括对于本领域技术人员而言存在的其它示例。例如,这里描述的***和方法可以被实施用于在具有单命令队列结构的任何***中的优先级控制。作为示例,这里描述的***和方法可以被实施用于在片上***(SOC)的模块或者部件(比如SOC中的SOC结构(总线互连)、PCIe模块以及USB模块)中的优先级控制。
例如,这里描述的***和方法可以通过包括由设备处理子***可执行的程序指令的程序代码被实施于许多不同类型的处理设备上。然而,也可以使用其它实现方式,比如被配置用于执行这里描述的方法和***的固件或者适当涉及的硬件。在另一示例中,这里描述的***和方法可以在独立处理引擎中被实施为协处理器或者被实施为硬件加速器。在又一实例中,这里描述的***和方法可以被提供于许多不同类型的计算机可读介质上,这些介质包括计算机存储机构(例如,CD-ROM、软磁盘、RAM、闪存、计算机的硬盘驱动等),这些机构包含用于在由处理器的用于执行这里描述的方法的操作和实施这里描述的***的执行中使用的指令(例如,软件)。

Claims (14)

1.一种用于动态地调度来自先进先出FIFO队列的命令的执行的方法,所述方法包括:
将多个命令接收到所述FIFO队列中,所述多个命令中的每个命令分别具有优先级,其中所述多个命令包括:
当前命令,所述当前命令对应于所述FIFO队列中的将被执行的当前排在第一位的命令,以及
最高优先级命令,所述最高优先级命令在所述FIFO队列中晚于所述当前命令并且其优先级是所述FIFO队列中的最高优先级;
确定等待时间,所述等待时间指示所述最高优先级命令已在所述FIFO队列中的时间量;
如果所述等待时间未超过阈值则将所述队列优先级确定为(i)所述最高优先级命令的优先级与(ii)所述当前命令的优先级的平均;
如果所述等待时间超过所述阈值则将所述队列优先级确定为等于所述队列中的所述最高优先级命令的优先级;以及
基于所述FIFO队列的优先级来调度来自所述FIFO队列的所述当前命令的执行。
2.根据权利要求1所述的方法,其中在所述FIFO队列中所述当前命令随后是第二命令,并且其中所述方法还包括,在调度来自所述FIFO队列的所述当前命令的所述执行之后:
执行所述当前命令并且从所述FIFO队列移除所述当前命令,从而导致所述FIFO队列中的所述第二命令成为所述当前命令;以及
响应于所述执行和所述移除,以所述第二命令作为所述当前命令来重复确定步骤。
3.根据权利要求1所述的方法,其中所述最高优先级命令是第一最高优先级命令,并且其中所述命令包括第二最高优先级命令,所述第二最高优先级命令在所述FIFO队列中晚于所述第一最高优先级命令并且其优先级是来自跟随所述第一最高优先级命令的命令 之中的最高优先级,并且其中所述方法还包括,在所述调度之后:
执行所述第一最高优先级命令并且从所述FIFO队列移除所述第一最高优先级命令,从而导致所述第二最高优先级命令的优先级成为所述最高优先级;以及
重复确定步骤,从而导致低于先前确定的所述队列优先级的新的队列优先级。
4.根据权利要求1所述的方法,还包括:
向所述FIFO队列添加具有高于所述最高优先级的优先级的新的命令;以及
以所述新的命令的优先级作为所述最高优先级来重复确定步骤,从而导致所述队列优先级的提高。
5.根据权利要求1所述的方法,还包括:
对于所述多个命令中的每个命令维护等待时间,所述等待时间指示相应的所述命令已在所述FIFO队列中的时间量;
其中所述队列优先级的所述确定至少部分地基于所述命令中的一个命令的所述等待时间。
6.根据权利要求5所述的方法,其中所述队列优先级的所述确定至少部分地基于所述命令中的两个或者更多个命令的等待时间。
7.根据权利要求5所述的方法,其中所述等待时间的所述维护是硬件实施的。
8.一种用于动态地调度来自先进先出FIFO队列的命令的执行的集成电路,所述集成电路包括:
存储器,所述存储器被配置用于将多个命令接收到所述FIFO队列中,所述多个命令中的每个命令分别具有优先级,其中所述多个命令包括:
当前命令,所述当前命令对应于所述FIFO队列中的将被执行的当前排在第一位的命令,以及
最高优先级命令,所述最高优先级命令在所述FIFO队列中晚于所述当前命令并且其优先级是所述FIFO队列中的最高优先级, 其中所述集成电路被配置用于确定等待时间,所述等待时间指示所述最高优先级命令已在所述FIFO队列中的时间量;
仲裁器,所述仲裁器被配置用于:
如果所述等待时间未超过阈值则将所述队列优先级确定为(i)所述最高优先级命令的最高优先级与(ii)所述当前命令的优先级的平均,以及
如果所述等待时间超过所述阈值则将所述队列优先级确定为等于所述队列中的所述最高优先级命令的优先级;以及
调度器,所述调度器被配置用于基于所述FIFO队列的优先级来调度来自所述FIFO队列的所述当前命令的执行。
9.根据权利要求8所述的集成电路,其中在所述FIFO队列中所述当前命令随后是第二命令,并且其中所述集成电路还包括处理器,所述处理器被配置用于,在所述调度器调度来自所述FIFO队列的所述当前命令的所述执行之后,执行所述当前命令并且从所述FIFO队列移除所述当前命令,从而导致所述FIFO队列中的所述第二命令成为所述当前命令;并且
其中所述仲裁器还被配置用于响应于所述执行和所述移除,以所述第二命令作为所述当前命令来重复所述确定。
10.根据权利要求8所述的集成电路,其中所述最高优先级命令是第一最高优先级命令,并且其中所述命令包括第二最高优先级命令,所述第二最高优先级命令在所述FIFO队列中晚于所述第一最高优先级命令并且其优先级是来自跟随所述第一最高优先级命令的命令之中的最高优先级,并且
其中所述集成电路还包括处理器,所述处理器被配置用于执行所述第一最高优先级命令并且从所述FIFO队列移除所述第一最高优先级命令,从而导致所述第二最高优先级命令的优先级成为所述最高优先级;并且
其中所述仲裁器还被配置用于重复所述确定,从而导致低于先前确定的所述队列优先级的新的队列优先级。
11.根据权利要求8所述的集成电路,其中所述集成电路被配置用于向所述FIFO队列添加具有高于所述最高优先级的优先级的新的命令;并且
其中所述仲裁器还被配置用于以所述新的命令的优先级作为所述最高优先级来重复所述确定,从而导致所述队列优先级的提高。
12.根据权利要求8所述的集成电路,其中所述集成电路被配置用于对于所述多个命令中的每个命令维护等待时间,所述等待时间指示相应的所述命令已在所述FIFO队列中的时间量;并且
其中所述仲裁器被配置用于所述队列优先级的所述确定至少部分地基于所述命令中的一个命令的所述等待时间。
13.根据权利要求12所述的集成电路,其中所述仲裁器被配置用于所述队列优先级的所述确定至少部分地基于所述命令中的两个或者更多个命令的等待时间。
14.根据权利要求12所述的集成电路,其中所述等待时间的所述维护是硬件实施的。
CN201380007046.XA 2012-01-27 2013-01-25 用于动态优先级控制的***和方法 Active CN104160384B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261591705P 2012-01-27 2012-01-27
US61/591,705 2012-01-27
PCT/IB2013/000521 WO2013111019A2 (en) 2012-01-27 2013-01-25 Systems and methods for dynamic priority control

Publications (2)

Publication Number Publication Date
CN104160384A CN104160384A (zh) 2014-11-19
CN104160384B true CN104160384B (zh) 2017-06-16

Family

ID=48325782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380007046.XA Active CN104160384B (zh) 2012-01-27 2013-01-25 用于动态优先级控制的***和方法

Country Status (6)

Country Link
US (3) US9146690B2 (zh)
EP (1) EP2807567B1 (zh)
JP (1) JP6169615B2 (zh)
KR (1) KR20140127233A (zh)
CN (1) CN104160384B (zh)
WO (1) WO2013111019A2 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9824004B2 (en) 2013-10-04 2017-11-21 Micron Technology, Inc. Methods and apparatuses for requesting ready status information from a memory
US10108372B2 (en) 2014-01-27 2018-10-23 Micron Technology, Inc. Methods and apparatuses for executing a plurality of queued tasks in a memory
US9454310B2 (en) * 2014-02-14 2016-09-27 Micron Technology, Inc. Command queuing
KR101699377B1 (ko) * 2014-07-02 2017-01-26 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US10055368B2 (en) * 2016-02-26 2018-08-21 Sandisk Technologies Llc Mobile device and method for synchronizing use of the mobile device's communications port among a plurality of applications
US10037246B1 (en) * 2016-07-25 2018-07-31 Cadence Design Systems, Inc. System and method for memory control having self writeback of data stored in memory with correctable error
CN106647359B (zh) * 2016-11-24 2019-02-05 哈工大机器人集团上海有限公司 一种调度方法
EP3564709A4 (en) * 2016-12-27 2020-01-08 Panasonic Intellectual Property Management Co., Ltd. POSITIONING SYSTEM, BASE STATION AND POSITIONING PROCEDURE
KR20180090124A (ko) * 2017-02-02 2018-08-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN108984108A (zh) * 2017-06-05 2018-12-11 北京忆恒创源科技有限公司 用于调度io命令的方法与固态存储设备
CN107205035B (zh) * 2017-06-15 2020-11-10 公安部交通管理科学研究所 一种基于互联网的驾驶人考试预约管理方法
US10318301B2 (en) * 2017-08-31 2019-06-11 Micron Technology, Inc. Managed multiple die memory QoS
CN108259368A (zh) * 2018-01-11 2018-07-06 郑州云海信息技术有限公司 一种基于fpga的数据传输***及方法
US10725696B2 (en) * 2018-04-12 2020-07-28 Micron Technology, Inc. Command selection policy with read priority
US11144240B2 (en) 2018-08-24 2021-10-12 Micron Technology, Inc. Memory sub-system for increasing bandwidth for command scheduling
US11038856B2 (en) * 2018-09-26 2021-06-15 Marvell Asia Pte, Ltd. Secure in-line network packet transmittal
US11095626B2 (en) 2018-09-26 2021-08-17 Marvell Asia Pte, Ltd. Secure in-line received network packet processing
US11288185B2 (en) 2019-01-03 2022-03-29 Silicon Motion, Inc. Method and computer program product for performing data writes into a flash memory
CN111399750B (zh) * 2019-01-03 2023-05-26 慧荣科技股份有限公司 闪存数据写入方法及计算机可读取存储介质
CN113377277A (zh) * 2020-03-09 2021-09-10 伊姆西Ip控股有限责任公司 管理存储器的方法、设备和计算机程序产品
CN113179227B (zh) * 2021-04-26 2023-05-19 哈尔滨铁路科研所科技有限公司 基于队列的at指令控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075963A (zh) * 2007-07-02 2007-11-21 中兴通讯股份有限公司 一种基于网络QoS的动态控制装置及其方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6092158A (en) * 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6270040B1 (en) * 2000-04-03 2001-08-07 Kam Industries Model train control system
US6681270B1 (en) * 1999-12-07 2004-01-20 Texas Instruments Incorporated Effective channel priority processing for transfer controller with hub and ports
JP2001217893A (ja) * 2000-02-03 2001-08-10 Toyo Commun Equip Co Ltd 電源保持回路及びこれを用いた回線終端装置
IL134755A0 (en) * 2000-02-28 2001-04-30 Terracross Ltd Method and apparatus for high-speed generation of a priority metric for queues
US6738386B1 (en) * 2000-05-11 2004-05-18 Agere Systems Inc. Controlled latency with dynamically limited queue depth based on history and latency estimation
US7035984B2 (en) 2001-12-31 2006-04-25 Intel Corporation Memory arbiter with grace and ceiling periods and intelligent page gathering logic
US7240090B2 (en) * 2002-11-04 2007-07-03 Hewlett-Packard Development Company, L.P. Data queueing
US7299324B2 (en) * 2003-11-05 2007-11-20 Denali Software, Inc. Reactive placement controller for interfacing with banked memory storage
US20050289530A1 (en) * 2004-06-29 2005-12-29 Robison Arch D Scheduling of instructions in program compilation
JP4801725B2 (ja) * 2006-02-28 2011-10-26 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP4895183B2 (ja) * 2006-07-21 2012-03-14 キヤノン株式会社 メモリコントローラ
KR20090085906A (ko) * 2008-02-05 2009-08-10 삼성전자주식회사 로지컬 인터페이스의 우선순위에 따른 라우팅 처리 시스템및 그 제어방법
JP5770721B2 (ja) * 2010-05-24 2015-08-26 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 情報処理システム
US9354926B2 (en) * 2011-03-22 2016-05-31 International Business Machines Corporation Processor management via thread status

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075963A (zh) * 2007-07-02 2007-11-21 中兴通讯股份有限公司 一种基于网络QoS的动态控制装置及其方法

Also Published As

Publication number Publication date
JP6169615B2 (ja) 2017-07-26
KR20140127233A (ko) 2014-11-03
US20160011993A1 (en) 2016-01-14
US9411753B2 (en) 2016-08-09
WO2013111019A3 (en) 2013-10-24
EP2807567B1 (en) 2018-03-07
CN104160384A (zh) 2014-11-19
US20160313949A1 (en) 2016-10-27
EP2807567A2 (en) 2014-12-03
US20130198416A1 (en) 2013-08-01
JP2015505114A (ja) 2015-02-16
WO2013111019A2 (en) 2013-08-01
US9146690B2 (en) 2015-09-29

Similar Documents

Publication Publication Date Title
CN104160384B (zh) 用于动态优先级控制的***和方法
US11061580B2 (en) Storage device and controllers included in storage device
US8893146B2 (en) Method and system of an I/O stack for controlling flows of workload specific I/O requests
US7716391B2 (en) Data transfer apparatus, data transfer method, and program
KR101366960B1 (ko) 입출력 핀을 이용한 다중 웨이 낸드 플래시 제어 장치 및 방법
KR101270848B1 (ko) 트래픽 클래스들과 관련된 포트들을 갖는 다중 포트 메모리 제어기
JP5414656B2 (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
EP3014459B1 (en) Method and apparatus for controlling memory operation
CN104991737B (zh) 一种基于存储卡阵列架构的硬盘实现方法
JP2007524917A (ja) メモリ装置との間のデータ流に選択的に影響を与えるためのシステムおよび方法
US20170091127A1 (en) Techniques to Couple with a Storage Device via Multiple Communication Ports
CN110716691A (zh) 调度方法、装置、闪存设备和***
EP2709020B1 (en) System and method to arbitrate access to memory
US20100042756A1 (en) Data transfer device
US20160246515A1 (en) Method and arrangement for controlling requests to a shared electronic resource
US9971522B2 (en) Memory system and method
CN109753459A (zh) 一种大容量数据记录器
US8301816B2 (en) Memory access controller, system, and method
CN108509154A (zh) 一种根据坏块分布动态时间raid分组的方法和装置
US20100011141A1 (en) Signal relay device and method for accessing an external memory via the signal relay device
CN107656702A (zh) 加速硬盘读写的方法及其***、以及电子设备
US8713205B2 (en) Data transfer device and data transfer method
CN115794446B (zh) 一种消息处理方法、装置、电子设备和存储介质
US8972614B2 (en) Half-duplex SATA link with controlled idle gap insertion
JPWO2018003244A1 (ja) メモリコントローラ、メモリシステムおよび情報処理システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200507

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200507

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200507

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.