使用循环计数实现增强循环队列的方法和装置制造方法及图纸

技术编号:2853340 阅读:236 留言:0更新日期:2012-04-11 18:40
一种方法、装置和计算机程序产品,用于使用循环计数来实现增强的循环队列以用于命令处理。循环队列包括多个用于存储命令的输入项。当在队列的首部向队列添加命令输入项时,采用每个命令输入项存储首部循环计数。首部指针被更新到队列的首部。当首部指针从最后队列输入项换行到第一队列输入项时,首部循环计数递增。尾部指针指向最老的命令输入项,并且在执行最老的命令输入项时被更新。当尾部指针推进并从最后的队列输入项换行到第一队列输入项时,尾部指针循环计数递增。

【技术实现步骤摘要】

本专利技术一般地涉及数据处理领域,具体涉及在计算机系统中使用循环计数来实现增强的循环队列以用于命令处理的方法、装置和计算机程序产品。
技术介绍
在传统的结构中,使得一些输入项无序地被执行的循环队列将导致位于首部和尾部输入项之间的空闲并因此不能被使用的队列输入项。这意味着当在队列中实际上存在小于其容量的输入项时,循环队列全部出现。例如,图2图解了如何使用循环队列的传统结构来将输入项排队和解除排队。在图2中,所述循环队列包括8个输入项和指示正在使用一个队列输入项的X。如图2所示,输入项被添加到队列的首部,并且以任何顺序从所述队列去除。尾部指针指示在队列中的最老的输入项。首先,循环队列开始是空的,并且首部和尾部指针指向第一输入项。首部指针指向队列的首部,尾部指针指向在队列中的最老的输入项。接着,在已接收到7个命令后,示出了循环队列。在已经接收到7个命令后,尾部指针指向第一输入项,首部指针指向最后的输入项。然后,在已经以任何顺序执行了5个命令后,示出了循环队列。在已经执行了5个命令后,尾部指针指向仍然作为在队列中的最老输入项的第一输入项,并且首部指针指向最后的输入项。接着,在已经接收到另一个命令并且将其添加到在队列中的最后输入项后示出循环队列。然后,首部指针换行(wrap)以便指向第一输入项,而尾部指针仍然指向第一输入项。在接收到所示的最后命令后,即使5个输入项没有,队列也全部出现。可以使用避免这样的问题的链接列表来取代循环队列。但是,链接列表将比循环队列需要明显更多的硬件。需要一种实现循环队列的有效的机制,它能够以任何顺序处理排队的命令,并且能够使用在使用传统的循环队列配置时不能获得的、空闲的队列输入项。期望提供这样的机制,它能够有效地使用循环队列,而不需要附加的硬件并且没有链接列表的复杂性。
技术实现思路
本专利技术的主要方面提供一种方法、装置和计算机程序产品,用于在诸如存储控制器之类的计算机系统中使用循环计数来实现增强的循环队列。本专利技术的其他重要方面提供这样的方法、装置和计算机程序产品,用于使用循环计数来实现增强的循环队列,而基本上没有副作用,并且克服了现有技术结构的许多缺陷。简而言之,提供了一种方法、装置和计算机程序产品,用于使用循环计数来实现增强的循环队列以用于命令处理。循环队列包括多个用于存储命令的输入项。当在队列的首部向队列增加命令输入项时,采用每个被添加的命令输入项存储首部循环计数。首部指针被更新到具有每个被添加的命令输入项的队列的首部。当首部指针从最后队列输入项换行到第一队列输入项时,首部循环计数递增。尾部指针指向最老的命令输入项,并且在执行最老的命令输入项时被更新。当尾部指针推进并从最后的队列输入项换行到第一队列输入项时,尾部指针循环计数递增。按照本专利技术的特征,循环计数的使用实现了无序命令的处理并能有效使用在循环队列中的所有可用输入项。附图说明通过下面详细说明在附图中图解的本专利技术的优选实施例,可以更好地理解本专利技术以及上述和其他目的和优点,其中图1是图解按照所述优选实施例的、使用循环计数来实现增强的循环队列的计算机系统的方框示;图2图解了包括初始空队列的现有技术的循环队列结构以及如何无序地对输入项进行排队和解除排队而导致不能使用的在首部和尾部输入项之间的空闲队列输入项;图3图解了在图1的网络处理器系统中的、按照所述优选实施例的、用于使用循环计数来实现增强的循环队列的示例性队列序列;图4是在图1的计算机系统中的、按照所述优选实施例的、使用循环计数来实现增强的循环队列的示例性队列结构的替代图示,如图3所示的示例性队列序列那样,它表示出了在接收到最后4个命令后的这个队列结构;图5是图解用于在图1的计算机系统中、按照所述优选实施例来使用循环计数实现增强的循环队列的示例性步骤的流程图;以及图6是图解按照优选实施例的计算机程序产品的方框图。具体实施例方式现在参见附图,在图1中,示出了总体采用附图标号100指示的计算机系统,用于按照所述优选实施例使用循环计数来实现增强的循环队列。计算机系统100包括处理器102或中央处理器单元(CPU)102,它通过系统总线106藕接到存储器管理单元(MMU)108和系统存储器,所述系统存储器包括动态随机存取存储器(DRAM)110、非易失性随机存取存储器(NVRAM)112和快闪存储器114。藕接到系统总线106和MMU 108的存储控制器116的海量存储接口118将直接存取存储器件(DASD)120和CD-ROM驱动器122连接到处理器102。按照所述优选实施例,存储控制器116使用循环计数对循环队列200中的命令进行排队和解除排队。以足够明白本专利技术的简单形式表示计算机系统100。所示的计算机系统100不意欲暗示结构或功能的限制。本专利技术可以用于各种硬件实现方式和系统以及各种其它内部硬件器件。应当明白,本专利技术不限于用于所示的计算机系统100,各种处理器系统都可以提供其中能有利于实现本专利技术的优选实施例的方法和增强的循环队列结构的计算机环境。可以使用各种标准处理器——诸如使用由国际商业机器公司制造的PowerPC系列的处理器之一——来实现处理器102。按照所述优选实施例的特征,按照所述优选实施例使用循环计数在循环队列200中对命令进行排队和解除排队,以便能以任何顺序执行命令,同时使得在循环队列200中的所有空闲队列输入项都可以用于存储新命令。按照所述优选实施例的特征,当命令输入项在队列首部处被添加到队列时,采用每个命令输入项存储首部循环计数。首部指针被更新到队列的首部。当首部指针从最后的队列输入项换行到第一队列输入项时,首部循环计数递增。尾部指针指向最老的命令输入项,并且在执行最老的命令输入项时被更新。当尾部指针推进并从最后的队列输入项换行到第一队列输入项时,尾部指针循环计数递增。将具有首部循环计数值的首部指针与具有尾部循环计数值的尾部指针相比较,以识别循环队列200的完全状态,并且当首部循环指针需要前进到具有用于该首部和尾部指针的匹配循环计数的尾部循环指针时,认为所述队列完整。现在参见图3和图4,示出了示例性队列图,用于图解按照所述优选实施例的使用循环计数的命令队列输入项处理。图3图解了按照所述优选实施例的、在处理器系统100中的示例性初始队列结构,它总体上采用附图标号200指示。如图所示,初始队列结构200包括8个空输入项0-7,并且首部和尾部指针指向第一输入项0,首部和尾部指针具有循环计数0。首部指针指向队列的首部,并且尾部指针指向在队列中的最老的输入项。由多位值来表示循环计数。例如,所述循环计数包括用于通过循环队列200的8个循环的3位、或用于通过循环队列200的4个循环的2位。接着,示出了在已经接收和向循环队列200添加7个命令后的循环队列200。在队列输入项0-6中所示的编号0指示队列输入项0-6在使用,并且编号0指示循环计数值。在已经接收到7个命令后,尾部指针指向用于指示最老的命令的第一输入项0,并且首部指针被更新并指向用于增加下一个命令的最后的输入项7。然后,示出了已经执行了5个命令后的循环队列200。在已经执行了所述5个命令后,尾部指针指向第一输入项,并且首部指针指向最后的输入项。接着,示出了在已经接收到另一个命令并且将其添加到由首部指针指向的最后本文档来自技高网
...

【技术保护点】
一种用于实现用于命令处理的增强循环队列的方法,包括步骤:提供包括用于存储命令的多个输入项的循环队列;向所述循环队列的首部输入项增加命令输入项,并且采用被添加到所述循环队列的命令输入项存储首部循环计数;更新用于指向在循 环队列中的下一个首部输入项的首部指针;并且响应于首部指针从最后的队列输入项换行到第一队列输入项而使得所述首部循环计数递增;提供用于指向最老的命令输入项的尾部指针,并且在每个最老的命令输入项被执行时推进尾部指针;响应于尾部指针从最后的 队列输入项换行到第一队列输入项而使得所述尾部指针的尾部循环计数递增。

【技术特征摘要】
US 2004-11-12 10/988,2321.一种用于实现用于命令处理的增强循环队列的方法,包括步骤提供包括用于存储命令的多个输入项的循环队列;向所述循环队列的首部输入项增加命令输入项,并且采用被添加到所述循环队列的命令输入项存储首部循环计数;更新用于指向在循环队列中的下一个首部输入项的首部指针;并且响应于首部指针从最后的队列输入项换行到第一队列输入项而使得所述首部循环计数递增;提供用于指向最老的命令输入项的尾部指针,并且在每个最老的命令输入项被执行时推进尾部指针;响应于尾部指针从最后的队列输入项换行到第一队列输入项而使得所述尾部指针的尾部循环计数递增。2.按照权利要求1的用于实现用于命令处理的增强循环队列的方法,还包括步骤将所更新的首部指针与尾部指针相比较,以识别完整的循环队列。3.按照权利要求1的用于实现用于命令处理的增强循环队列的方法,其中,采用命令输入项存储首部循环计数包括步骤存储多位值以表示所述首部循环计数。4.按照权利要求1的用于实现用于命令处理的增强循环队列的方法,包括步骤执行来自循环队列的任何命令输入项。5.一种用于实现用于命令处理的增强循环队列的装置,包括循环队列,包括用于存储命令的多个输入项;存储控制器,藕接到用于存储命令的所述循环队列;所述存储控制器在所述循环队列的首部输入项处增加命令输入项,并且采用被添加到所述循环队列增加命令输入项存储首部循环计数;所述存储控制器更新用于指向在循环队列中的下一个首部输入项的首部指针;并且响应于首部指针从最后的队列输入项换行到第一队列输入项而使得所述首部循环计数递增;所述存储控制器提供用于指向最老的命令输入项的尾部指针,并且在每个最老的命令输入项被执行时推进尾部指针;响应于尾部指针从最后的队列输入项...

【专利技术属性】
技术研发人员:保罗A甘菲尔德朗尼兰布雷赫特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1