用于动态优先级控制的系统和方法技术方案

技术编号:10660288 阅读:165 留言:0更新日期:2014-11-19 19:51
提供了一种用于动态地管理系统控制器的先进先出(FIFO)命令队列的系统和方法。将一个或者多个命令接收到命令队列中,命令与优先级参数关联。确定将在命令队列中被执行的排在第一位的当前命令,该当前命令与第一优先级参数关联。确定与第二优先级参数关联的第二命令,第二优先级参数是在与该一个或者多个命令关联的优先级参数之中最大的。至少部分地基于第二优先级参数计算用于该当前命令的最终优先级参数。

【技术实现步骤摘要】
【国外来华专利技术】用于动态优先级控制的系统和方法相关申请的交叉引用本公开内容要求于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命令队列可以经常实现这一方式而没有任何问题,因为首先被接收的问题将首先被服务。然而,在虚拟通道方式或者多通道方式下,具有同一标识号的命令经常被发送到不同物理命令队列。通常需要附加机制以按顺序执行具有同一标识号的命令,这将增加系统的复杂性和成本。本公开内容呈本文档来自技高网
...
用于动态优先级控制的系统和方法

【技术保护点】
一种用于动态地管理系统控制器的先进先出(FIFO)命令队列的方法,所述方法包括:将一个或者多个命令接收到所述命令队列中,命令与优先级参数关联;确定将在所述命令队列中被执行的排在第一位的当前命令,所述当前命令与第一优先级参数关联;确定与第二优先级参数关联的第二命令,所述第二优先级参数是在与所述一个或者多个命令关联的优先级参数之中最大的;至少部分地基于所述第二优先级参数计算用于所述当前命令的最终优先级参数;以及在所述最终优先级参数满足预定条件时输出所述最终优先级参数以便所述当前命令被选择用于执行。

【技术特征摘要】
【国外来华专利技术】2012.01.27 US 61/591,7051.一种用于动态地调度来自先进先出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队列的命令的执行的集成电路,所述集成电路包括:存储器,所述存储器被配置用于将多个命令接收到所述FIF...

【专利技术属性】
技术研发人员:朱军J·J·曹TJ·扬R·鲁
申请(专利权)人:马维尔国际贸易有限公司
类型:发明
国别省市:巴巴多斯;BB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1