在多个请求信号之间进行公平仲裁的系统和方法

文档序号:6404947阅读:190来源:国知局
专利名称:在多个请求信号之间进行公平仲裁的系统和方法
技术领域
本发明涉及计算和组网领域,并尤其涉及用来从多个请求信号中进行选择的仲裁方案。
背景技术
在电子、计算和组网技术中普遍存在从多个请求信号之中进行选择的问题,并且现有技术中有很多用来在这些信号之中进行选择的技术。使用仲裁器可以分配总线资源,访问共享存储器,组网连接,数据库处理;这种仲裁器可以作为硬件电路、可编程逻辑器件、或运行在通用CPU上的软件来实现。
有许多方案被配置来在信号或资源之中进行仲裁。在这些多种方案中,各种连接到所述仲裁器的请求具有定制的等级,以便在请求之间产生冲突的情况下,具有最高优先级的请求器能够从所述仲裁器中得到优选选择。在一些方案中,所述请求器具有固定的、静态的等级。在其他的方案中,等级队列是可以动态修改的;一些这种方案在每次请求之后都修改所述等级队列。
动态排队方案实现起来常常是很麻烦的。例如,考虑由一组if-then-else语句控制一组请求器的优先级的方案。例如,假设仲裁器是由下面用伪代码表示的下述方案来定义的。
If Requester 0 then grant(Requester 0)Else if Requester 1 then grant(Requester 1)Else if Requester 2 then grant(Requester 2)Else if Requester 3 then grant(Requester 3)现在假设所述仲裁器是动态的,即,请求器的优选级是动态改变的。上述的代码不得不改变次序来适应新的优先级。如果所述仲裁器是由诸如FPGA的可编程硬件实现的,那么这将尤其会产生问题,即导致仲裁器实现起来既复杂又慢。

发明内容
这里描述了一种仲裁器的可再编程体系结构。所述仲裁器被设计来公平、快速、和简单地用电路来实现,尤其是用可编程逻辑器件来实现。在本发明的一些实施例中,所述仲裁器可以用来在多个总线信号之间进行仲裁,通过一个公平的方案来分配优先级给各种总线信号。在此所描述的至少一些和其他的目的将通过本发明的实施例来实现。
在本发明的一些实施例中,所述仲裁器在许多请求器之中进行仲裁,为了示范性的目的,所述请求器被标注为Requester0,Requester1,…,Requestern-1。在一些这样的实施例中,所述仲裁器可以通过复用n个连接器来实现,所述连接器能够动态重新划分所述请求的优先级。这样,标记为Connector0到Connectorn-1的n个连接器被双射映射地复用到n个请求器。然后,来自所述连接器的请求可以通过改变从所述连接器到所述请求器的双射映射来重新划分优先级。
在一些这样的实施例中,从连接器到请求器之间的映射可以被改变,以便所述请求器的优先级在其被仲裁器控制授权之后将处于最低级别。在所述授权丧失之后,修改所述双射映射,以便Connectory将映射到Requestern-1,并且为了保持它们相互之间优先级的相对顺序,剩余的连接器将被映射到Requester0-Requestern-2。
在非限定性的实施例中,所述仲裁器可以用来控制访问联网设备中的高速总线。例如,所述仲裁器可以通过POS线和DMA控制器来控制访问高速总线。在一些这样的实施例中,所述的高速总线可以采用低压差分信号总线的形式,并以大约10Gbps,或更高速率的全双工方式来工作。在此将进一步具体描述这些和其他实施例。


图1示出了依据本发明实施例的仲裁器的体系结构。
图2示出了依据本发明实施例的仲裁器的内部操作。
图3示出了依据本发明实施例的用来控制访问高速总线的仲裁器的例子。
具体实施例方式
在此所描述的本发明的实施例仅仅作为例子的目的给出,并不是对本发明范围的任何方式的限制。许多可选的和等同的实施例对于本领域熟练技术人员来说是显而易见的。
仲裁器的描述如图1所示,本发明的一些实施例包括一个具有公平加权(itr tat)方案的仲裁器。在一些实施例中,所述仲裁器100可以位于交换机108中,所述交换机连接多个连接器106到系统资源。作为说明,所述n个连接器可以被标注为Connector0到Connectorn-1。作为非限制性的例子,所述交换机108可以被用来仲裁访问在所述连接器106之间的系统总线。其它由所述交换机108和/或仲裁器100控制访问的资源对本领域熟练的技术人员来说是显而易见的。
图2示出了仲裁器100的内部操作-所述仲裁器100处理n个标注为Requester0,Requester1,…,Requestern-1的请求器200,并分配优先级到由连接器106使用仲裁器100和交换机108所访问的资源。在一些实施例中,这些请求器200具有一个固定的优先级。作为非限制性的例子,该固定优先级可以是递减的优先级顺序;这可以用如下的伪代码来表示If Requester0then Grant(Requester0)Else if Requester1then Grant(Requester1)Else if Requestern-1then Grant(Requestern-1)Table 1在一些实施例中,所述仲裁器还包括一个复用器、或mux202,所述复用器能够动态重新划分来自于所述连接器106请求的优先级。在操作期间,mux202将标注为Connector0到Connectorn-1的n个连接器106双射映射到所述n个请求器200。这样,来自于连接器106的请求被通过使用mux204来重新进行优先级的划分,所述mux204重新映射在连接器106和请求器200之间的复用连接。
公平加权仲裁器的操作仲裁器100的操作作为例子来被示出。假设请求器200的相对优先级被动态地修改。作为非限制性的例子,假设优先级在每次授权之后进行修改,并且请求器的优先级在其已经被仲裁器100控制授权之后下降到最低级别。例如,假定Requesterx{(x#n),并且,不失一般性,x<>(n-1)}在当前对接周期中获得授权,那么Requesterx被连接到Connectory。在所述授权丧失之后,在mux202中的双射映射应该被修改,以便Connectory能够映射到Requestern-1,并且剩余的连接器106将被映射到Requester0-Requestern-2,以便保持它们相互之间的相对优先级顺序。通过使用在此所描述的仲裁器,可以实现连接器106的所有n!个可能优先级。
在可编程硬件中公平加权仲裁器的使用图3示出了在此所描述的仲裁器100的实例的例子。该图包括交换机300;作为一个非限制性的例子,所述交换机可以被用在联网设备中的高速底板中,正如在2000年10月3日申请的、发明人JunaidIslam,Homayoun Valizadeh,和Jeffery S.Payne的美国专利申请09/678,321和2001年7月30日申请的、发明人Junaid Islam,HomayounValizadeh,和Jeffery S.Payne的US09/918,363中所描述那样,并因此而整体引用它们作为参考。在一些这样的例子中,所述交换机300可以在现场可编程门阵列(FPGA)、其他可编程硬件、或ASIC上实现(在FPGA的例子中,所述交换机可以作为高级设计语言来实现,例如,作为非限制性例子,Verilog或VHDL)。其他的例子对于本领域的熟练技术人员是显而易见的。
在图3所示出的例子中,所述交换机300控制访问高速栈总线302。在本发明的实施例中,所述高速总线302包括两个低压差分信号(LVDS)总线304 306。在所示出的例子中,每个LVDS线304 306都有16个针,所述每个针都运行在622MHz的速率上,从而对于每条线304 306来说,产生总带宽为622MHz*(1bit,full-duplex/pin)*16pins=9.952Gbps,全双工图3也示出了四个附加的连接器线,包括连接交换机300到CPU控制器的CPU线308。作为非限制性的例子,所述控制器可以是32位的DMA控制器,例如由GallileoTMInc所生产的。在这样一个例子中,每个针都可以运行在133MHz的对接速率上。这样所述CPU线308就具有带宽133MHz*(1bit,full-duplex/pin)*32pins=4.256Gbps,全双工连接到加法器300的附加连接器是一个反馈线310和两个POS接口312 314。所述的四个请求器,即CPU线308、反馈线310、和两个POS连接312 314,都通过交换机300访问所述LVDS栈总线302。通过在交换机300中引入仲裁器316,从而实现了一个公平加权仲裁的方案。从内部来讲,仲裁器316包括四个请求器,Requester0,Requester1,Requester2,Requester3,其准许访问所述栈总线302。所述请求器被划分优先级;作为非限定性的例子,它们可以被以递减的顺序来划分优先级,可以用下面的伪代码来表示If Requester1then Grant(Requester0)Else if Requester1then Grant(Requester1)Else if Requester2then Grant(Requester2)Else if Requester3then Grant(Requester3)Table 2交换机300包括一个内部复用器,其在每次授权之后,重新映射所述四个连接器,即CPU控制器、POS接口和反馈线,到所述请求器,以便接收到授权的最后连接器被映射到Requester3,并且剩余的连接器被重新映射到Requester0,Requester1,和Requester2来保持它们之间相对优先级的顺序。
进一步的可选特征可以包括在本发明中。根据本发明的目的和实践可以预料到所期望的在结果上的变化或不同。因此,目的在于通过下面的权利要求书的范围来限定本发明,并且这些权利要求应该被以尽可能宽的合理范围来解释。
权利要求
1.一种用于在连接到其上的多个信号之间进行仲裁并使用计算资源的交换机,所述交换机包括至少一个控制访问所述计算资源的请求线;连接所述至少一个请求线到所述多个信号中至少一个的复用器,以使所述复用器周期性地重新映射所述多个信号中的至少一个到有关访问所述计算资源的所述至少一个请求线。
2.一种用于在连接到其上的多个信号之间进行仲裁的交换机,所述交换机包括连接到所述交换机的计算资源,以使所述交换机连接所述多个信号;多个请求线,其中所述多个请求线控制访问所述计算资源,以使所述多个请求线处于固定的优先级顺序;连接所述多个请求线到所述多个信号的复用器,以便所述复用器周期性地重新映射所述多个信号到所述多个请求线以重新划分有关访问所述计算资源的多个信号的优先级。
3.如权利要求1所述的交换机,其中信号的数量等于请求线的数量。
4.如权利要求1所述的交换机,其中计算资源是硬件资源。
5.如权利要求1所述的交换机,其中硬件资源是总线。
6.如权利要求1所述的交换机,其中硬件资源是存储器控制器。
7.如权利要求1所述的交换机,其中所述交换机驻留在可编程硬件上。
8.如权利要求6所述的交换机,其中所述的可编程硬件包括一个或多个FPGA。
9.如权利要求7所述的交换机,其中所述交换机以VHDL在所述FPGA中编码。
10.如权利要求7所述的交换机,其中所述交换机以Verilog在所述FPGA中编码。
11.如权利要求1所述的交换机,其中所述交换机驻留在单片ASIC上。
12.如权利要求1所述的交换机,其中所述复用器重新映射所述多个信号到所述的多个请求线来保证所述多个信号公平加权访问所述计算资源。
13.如权利要求1所述的交换机,其中所述计算资源是低压差分信号总线。
14.如权利要求12所述的交换机,其中所述多个信号包括一个或多个POS接口。
15.如权利要求13所述的交换机,其中所述多个信号包括CPU控制器。
16.如权利要求14所述的交换机,其中所述多个信号包括反馈信号。
17.一种在用于访问计算资源的多个信号之间仲裁请求的方法,其中所述计算资源被连接到多个请求线上,以便所述多个请求线能够以递减的优先级顺序来访问所述计算资源,所述方法包括映射所述多个信号到所述多个请求线;在映射所述多个信号之后,授权在所述多个信号中的第一信号访问所述计算资源,以便所述第一信号被连接到在所述多个请求线中的第一请求线;响应于授权访问,重新映射所述多个信号到所述多个请求线,以便所述第一信号被映射到在所述多个请求线中的最低优先级请求线上。
18.如权利要求16所述的方法,其中所述第一请求线不同于所述最低优先级的请求线。
19.如权利要求16所述的方法,其中所述计算资源是高速总线。
20.如权利要求16所述的方法,其中信号的数量等于请求线的数量。
21.如权利要求19所述的方法,其中所述信号的数量等于四个信号。
22.如权利要求20所述的方法,其中所述四个信号包括CPU访问线。
23.如权利要求21所述的方法,其中所述四个信号线包括两个POS线。
24.如权利要求22所述的方法,其中所述四个信号线包括反馈线。
25.如权利要求23所述的方法,其中所述的计算资源是低压差分信号总线。
26.如权利要求24所述的方法,其中所述的重新映射步骤是在复用器中执行的。
全文摘要
本发明涉及一种仲裁器(100)的可重新编程的体系结构。所述仲裁器(100)被设计成能够公平、快速和简单地在电路中实现,尤其是用可编程逻辑器件来实现。在实施例中,所述仲裁器(100)在标注为Requester
文档编号G06F3/00GK1643482SQ03806047
公开日2005年7月20日 申请日期2003年2月13日 优先权日2002年2月15日
发明者爱德华·弗莱德 申请人:比维奥网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1