仲裁设备的制作方法

文档序号:21592649发布日期:2020-07-24 16:40阅读:151来源:国知局
仲裁设备的制作方法

相关申请的交叉引用

本申请要求于2019年1月16日提交的法国专利申请号1900377的优先权权益,其内容在法律允许的最大范围内通过引用整体并入于此。

本公开总体上涉及电子电路,并且更具体地涉及在这种电子电路中提供的仲裁设备。



背景技术:

仲裁设备在本领域中是已知的,其进行操作以从多个所接收的请求中选择请求。所接收的请求各自具有可以彼此不同的优先级等级(prioritylevel)。在这种设备中,对请求的选择基于所接收的请求的优先级等级。

需要克服已知仲裁设备的全部或部分缺点的设备。更具体地,需要一种仲裁设备,其减少或甚至抑制饥荒操作(即,永远不会从多个所接收的请求中选择一个请求的情况)的风险。

还需要一种仲裁设备,其不仅基于所接收的请求的优先级等级,而且还基于从多个类型中(优选地,从表示请求的处理应分别实时执行或不执行的事实的两个类型中)所选择的请求类型,进行操作以选择请求。



技术实现要素:

一个实施例提供了被配置为接收请求的设备,设备包括:与请求的可能优先级等级一样多的第一循环(round-robin)仲裁电路;以及被配置为将每个所接收的请求发送到根据请求的优先级等级确定的一定数目的第一循环仲裁电路的电路。

根据一个实施例,电路将每个请求发送至的第一循环仲裁电路的数目随着请求的优先级等级而增加。

根据一个实施例,对于每个请求,请求的优先级等级由在从1到请求的可能优先级等级的数目的范围内的整数表示,当请求的优先级高时,所述整数越高。

根据一个实施例,所述电路被配置为向与表示请求的优先级等级的整数相等的数目的第一循环仲裁电路发送每个请求。

根据一个实施例,所述电路还被配置为:针对每个请求,随机地选择电路将请求发送至的(多个)第一循环仲裁电路。

根据一个实施例,每个第一循环仲裁电路与可能优先级等级中的相应优先级等级相关联,电路还被配置为向每个第一循环仲裁电路发送具有的优先级等级大于或等于与第一循环仲裁电路相关联的优先级等级的每个请求。

根据一个实施例,设备还包括第二循环仲裁电路,第二循环仲裁电路的输入分别连接到第一循环仲裁电路的输出。

另一实施例提供了一种系统,该系统包括:如上文所定义的设备;第三循环仲裁电路;第四固定优先级仲裁电路,该第四固定优先级仲裁电路具有第一输入和第二输入,该第一输入连接到所述设备的第二循环仲裁电路的输出,并且该第二输入连接到第三循环仲裁电路的输出;以及电路,该电路被配置为接收各自具有从第一类型和第二类型中选择的类型的请求,并且向所述设备的电路发送第一类型的请求以及向所述第三循环仲裁电路发送第二类型的请求,系统的电路例如包括所述设备的电路。

根据一个实施例,当在第四固定优先级仲裁电路的第一输入和第二输入中的每个输入上存在请求时,第四固定优先级仲裁电路被配置为选择在其第二输入上存在的请求。

另一实施例提供了一种系统,该系统包括:如上文所定义的第一和第二设备;第三固定优先级仲裁电路,该第三固定优先级仲裁电路具有第一输入和第二输入,该第一输入连接到所述第一设备的第二循环仲裁电路的输出,并且该第二输入连接到所述第二设备的第二循环仲裁电路的输出;以及电路,该电路被配置为接收在第一类型和第二类型中选择的类型的请求,并且向所述第一设备的电路发送第一类型的请求,并且向所述第二设备的电路发送第二类型的请求,系统的电路例如包括第一设备的电路和/或第二设备的电路。

根据一个实施例,当在第三循环仲裁电路的第一输入和第二输入的每个输入上存在请求时,第三循环仲裁电路被配置为选择在其第二输入上存在的请求。

根据一个实施例,针对第一类型的请求的可能优先级等级的数目不同于针对第二类型的请求的可能优先级等级的数目。

根据一个实施例,不需要实时处理的请求是第一类型,需要实时处理的请求是第二类型。

另一实施例提供了诸如微控制器、微处理器或直接存储器访问电路的电子电路,电子电路包括如上所定义的设备或系统。

另一实施例提供了一种方法,该方法包括以下连续步骤:接收具有不同优先级等级的多个请求;以及通过电路向第一循环仲裁电路发送请求,第一循环仲裁电路的总数目等于优先级等级的数目,每个请求被发送至的第一循环仲裁电路的数目由请求的优先级等级确定,并且优选地随着请求的优先级等级而增加。

附图说明

在结合附图对特定实施例的以下非限制性描述中,将详细讨论前述和其他特征和优点,其中:

图1以框的形式示意性地示出了仲裁设备的一个实施例;

图2以框的形式示意性地示出了包括图1的设备的系统的一个实施例;以及

图3以框的形式示意性地示出了包括图1的设备的系统的另一实施例。

具体实施方式

在不同的附图中,相同的元件利用相同的附图标记表示。具体地,不同实施例共有的结构和/或功能元素可以利用相同的附图标记指定,并且可以具有相同的结构、尺寸和材料属性。

为了清楚起见,仅示出并详细描述了对于理解所描述的实施例有用的那些步骤和元件。特别地,没有详细描述定义请求的不同信号和协议,所描述的实施例与通常的请求信号和协议兼容。此外,没有详细描述提供有仲裁设备的电子电路,所描述的实施例与包括仲裁设备的常规电子电路兼容。最后,没有描述循环仲裁电路和固定优先级仲裁电路的操作和各种实现方式,所描述的实施例与这种仲裁电路的常规操作和常规实现方式兼容。

在整个本公开中,术语“连接”用于指定在没有除导体之外的中间元件的情况下的电路元件之间的直接电连接,而术语“耦合”用于指定电路元件之间的可以是直接的或者可以经由一个或多个中间元件的电连接。

在下面的描述中,例如除非另有说明,否则当引用限定绝对位置的术语(例如,术语“前”、“后”、“顶部”、“底部”、“左”、“右”等)或限定相对位置的术语(例如,术语“之上”、“之下”、“上部”、“下部”等)或限定方向的术语(例如,术语“水平”、“竖直”等)时,其指代附图的定向。

术语“约”、“大约”、“基本上”和“在...的数量级”在本文中用于表示所讨论的值的正负10%、优选正负5%的公差。

图1以框的形式非常示意性地示出了仲裁设备1的一个实施例。

这里设备1被设置为同时接收达n个请求ri,i是在从1到n的范围内的整数,并且n是大于或等于2的整数。此外,每个请求ri具有优先级等级p,p是在从1到m的范围内的整数,m是大于或等于2的整数。每个请求ri可以采用在从1到m的范围内的任何优先级等级p。这里认为请求的优先级等级越高,则优先级越高。作为示例,请求ri的优先级等级p由已发送请求的设备或电路设置。

设备1包括路由电路100。电路100被配置为同时接收n个请求ri(如果存在)。电路100因此包括n个输入ei,i在从1到n的范围内,每个输入ei被配置为接收对应请求ri。

设备1还包括m个仲裁电路110j,j是在从1到m的范围内的整数。换言之,设备1包括与请求ri的可能优先级等级的数目m一样多的仲裁电路110j。每个仲裁电路110j是循环类型的。此外,每个仲裁电路110j包括n个输入eai,i是在从1到n的范围内的整数。换言之,每个仲裁电路110j可以同时接收达n个请求。每个仲裁电路110j包括输出saj,在输出saj的电平处,由仲裁电路选择的请求可用。

电路100被配置为向m个仲裁电路110j中的p个仲裁电路发送或分配其接收的、优先级等级为p的每个请求ri。更具体地,对于每个输入ei,电路100包括m个对应输出sij,j是在从1到m的范围的整数。对于给定的输入ei,m个对应输出sij被耦合(优选地,连接)到相应仲裁电路110j的输入eai。换言之,每个输出sij被耦合(优选地连接)到仲裁电路110j的输入eai。

在该示例中,认为当电路100接收具有优先级等级p的请求ri时,电路100将请求发送到p个仲裁电路1101、1102、…、110j、110p-1和110p。换言之,每个仲裁电路110j与不同的优先级等级p相关联,在该示例中,等级p等于所考虑的仲裁电路的索引j,并且电路100被配置为向仲裁电路110j发送具有大于或等于j的优先级等级的所有请求ri。

设备1还包括仲裁电路120。仲裁电路120是循环类型的。仲裁电路120包括与仲裁电路110j一样多的输入ebj,或者换言之,包括与请求ri的可能优先级等级一样多的输入ebj。每个输入ebj耦合至(优选地连接至)仲裁电路110j的输出saj,j为在从1至m的范围内的整数。因此,当仲裁电路110j选择在其输入eai上可用的请求中的一个请求时,所选择的请求经由仲裁电路110j的输出saj发送到仲裁电路120的输入ebj。仲裁电路120包括输出sb,在输出sb的电平处,由仲裁电路120选择的请求可用。输出sb形成设备1的输出。

尽管本文未示出,但是每个仲裁电路110j、仲裁电路120和电路100优选地具有被配置为接收同步信号(例如,周期性同步信号或时钟信号)clk的输入。在这种情况下,优选地在信号clk的边沿(例如,上升沿)期间考虑在电路120或仲裁电路110j和120之一的输入上的请求。

此外,尽管在图1中每个请求已由单个导线表示,但实际上,请求可以包括多个信号并因此经由多个导线传输。例如,请求可以包括:在通过对应导线传输的一个比特上的信号req;在通过对应导线传输的一个比特上的请求确认信号ack,信号ack使得能够根据给定协议(例如,四相协议,或其中当信号ack和req在同步信号的边沿(上升和/或下降)上同时有效时而请求被验证的协议)来验证请求;以及在通过多个对应导线传输的多个比特上的数据信号,该数据信号具体地包括表示请求的优先级等级的信息。例如,当请求是与数据传送相对应的请求时,请求的数据信号例如包括表示传送源、传送目的地、所传送的数据字的大小和/或数目的信息。

设备1如下操作。当电路100的对应输入ei接收请求ri时,电路100例如借助表示请求本身内包括的等级p的信息来确定请求的优先级等级p。电路100然后经由p个输出sij将请求ri发送到p个仲裁电路110j。这针对能够接收对应请求ri的n个输入ei中的每个输入来实现。因此,m个仲裁电路110j中的每个仲裁电路能够从电路100接收一个或多个请求。已从电路100接收一个或多个请求的m个仲裁电路110j中的每个仲裁电路实现了循环类型的仲裁方法,并选择在其输入eai上存在的请求中的一个请求。由m个仲裁电路110j选择的请求在仲裁电路的相应输出saj的电平处可用,并且被递送到仲裁电路120。仲裁电路120然后实现循环类型的仲裁方法,并选择在其输入ebi上存在的请求中的一个请求,所选择的请求随后在仲裁电路120的输出sb上可用,并形成由仲裁设备1选择的请求。

在设备1中,当电路100同时接收多个请求ri时,请求的优先级等级p越高,请求被发送至的仲裁电路110j的数目p越大。结果,由一个或多个仲裁电路110j选择然后由仲裁电路120选择请求的概率随其优先级等级而增加。因此,请求的优先级等级p越高,设备1选择请求的概率越大。

此外,由于仲裁电路110j和120是循环类型而不是固定优先级等级类型的事实,当设备1同时接收多个请求ri时,在所有所接收的请求ri中,由设备1选择具有最低优先级等级的请求ri的概率不为零。这使得能够避免具有最低优先级等级的所接收的请求发生饥荒风险。

例如,在m等于3并且设备1在给定时间(例如,信号clk的上升沿)接收的请求ri之中,x个请求的优先级等级p等于1,y个请求的优先级等级p等于2,且z个请求的优先级等级p等于3的情况下,x、y和z的总和小于或等于n。在图1的示例中,具有等于1的优先级等级p的x个请求中的每个请求被发送到仲裁电路1101,具有等于2的优先级等级p的y个请求中的每个请求被发送到仲裁电路1101和1102中的每个仲裁电路,并且具有等于3的优先级等级p的z个请求中的每个请求被发送到仲裁电路1101、1102和1103中的每个仲裁电路。下表针对该特定示例提供了设备1根据请求的优先级等级选择请求的概率,在以下情况中:

-情况1:所有所接收的请求具有等于1的相同优先级等级p(x>0,y=0且z=0);

-情况2:所有所接收的请求具有等于2的相同优先级等级p(x=0,y>0且z=0);

-情况3:所有所接收的请求具有等于3的相同优先级等级p(x=0,y=0且z>0);

-情况4:所接收的请求均不具有等于1的优先级等级p(x=0,y>0且z>0);

-情况5:所接收的请求均不具有等于2的优先级等级p(x>0,y=0且z>0);

-情况6:所接收的请求均不具有等于3的优先级等级p(x>0,y>0且z=0);以及

-情况7:接收到具有三个优先级等级的请求(x>0,y>0且z>0)。应注意,上述概率没有考虑仲裁电路110j的状态,即,它们没有考虑每个仲裁电路110j选择(服务)的可能的最后请求。

表1

从上表可以看出,当同时接收多个请求并且请求具有不同的优先级等级时,具有最高优先级等级的请求比具有较低优先级等级的请求具有更高的被设备1选择的概率。尽管已在特定示例的情况下获得了该表,但是可以将上述结果一般化为任意一对值m和n。

以上已描述了一个实施例,其中一方面,每个仲裁电路110j与给定优先级等级p相关联,而另一方面,电路100被配置为向每个仲裁电路110j发送具有大于或等于与该仲裁电路110j相关联的优先级等级的优先级等级的所有请求。

作为变型,电路100被配置为随机地选择p个仲裁电路110j,电路100向该p个仲裁电路110j发送优先级等级为p的每个所接收的请求。这使得当设备1同时接收到第一请求和优先级等级高于第一请求的第二请求时,能够减小第一请求被设备1选择的概率与第二请求被设备1选择的概率之间的间隔。这因此降低了具有最低优先级等级的请求发生饥荒的风险。但是,第二请求被选择的概率仍然大于第一请求被选择的概率。

在某些应用中,期望提供两个不同类型的请求(例如,与不需要实时处理的请求相对应的第一类型的请求以及与需要实时处理的请求相对应的第二类型的请求),在提供两个类型中的一个类型(在本示例中为第二类型)的请求时,保持相对于两个类型中的另一类型(在本示例中为第一类型)的请求更高的优先级。现在将结合图2来描述能够满足该需求的仲裁系统或设备。

图2以框的形式示意性地示出了系统2的实施例,系统2包括设备1,并且更具体地此处包括两个设备1。

系统2可以同时接收多达n个请求ri。每个所接收的请求ri可以是第一类型rt,也可以是第二类型nrt,此处的第一类型具有比第二类型更高的优先级。例如,nrt类型的请求对应于不需要实时处理的请求(nrt——“非实时”),rt类型的请求对应于需要实时处理的请求(rt——“实时”)。在系统2的上游,例如通过发送请求的电路或设备来选择或设置请求的rt或nrt类型。在请求中例如通过表示请求类型的信息来指示请求的rt或nrt类型,信息例如被包括在请求本身的数据信号内。

每个nrt类型请求具有优先级等级pnrt,pnrt是在从1到大于或等于2的整数mnrt的范围内的整数。此外,在该实施例中,每个rt类型请求具有优先级等级prt,prt是在从1到大于或等于2的整数mrt的范围内的整数。整数mnrt和mrt可以不同或相等。

两个设备1中的第一个设备被配置为处理nrt类型的请求,并在图2中使用附图标记1nrt表示,两个设备1中的第二个设备被配置为处理rt类型的请求,并在图2中使用附图标记1rt表示。此外,在图2中,用于指定设备1nrt的各个元件的附图标记(或1rt)与用于指定图1中的相同元件的那些附图标记(分别附加了字母nrt(或rt))相对应。

系统2还包括电路200。电路200包括n个输入ini,每个输入ini被配置为接收对应的请求ri。电路200的输入ini形成系统2的输入。对于每个输入ini,电路200包括两个输出oinrt和oirt,输出oinrt和oirt耦合至(优选地连接至)设备1nrt和1rt的相应输入einrt和eirt。当系统2接收nrt类型的请求ri时,电路200被配置为经由其输出oinrt将请求发送到设备1nrt的电路100nrt的对应输入einrt。类似地,当系统2接收rt类型的请求ri时,电路200被配置为经由其输出oirt将请求发送到设备1rt的电路100rt的对应输入eirt。

系统2还包括仲裁电路210。仲裁电路210包括输入l和输入h,输入l耦合(优选地连接)到设备1nrt的输出sbnrt(即,仲裁电路120nrt的输出),输入h耦合(优选地连接)到设备1rt的输出sbrt(即,仲裁电路120rt的输出)。仲裁电路210包括形成系统2的输出的输出out。仲裁电路210是固定优先级等级类型的,即,当在其输入l和h上同时存在两个请求时,仲裁电路总是选择在其具有最高优先级等级的输入上存在的请求。在该示例中,仲裁电路始终选择在其输入h上存在的请求,输入h从设备1rt接收rt类型的请求,rt类型的请求的优先级等级高于通过其输入l从设备1nrt接收的nrt请求。

在操作中,当系统2同时接收多个请求ri时,nrt类型的请求ri由电路200发送到设备1nrt,在设备1nrt中,根据关于图1描述的它们的优先级等级pnrt对请求进行处理,rt类型的请求由电路200发送到设备1rt,在设备1rt中,根据关于图1描述的它们的优先级等级prt对请求进行处理。因此,当系统2接收rt类型的请求和nrt类型的请求时,设备1rt(或1nrt)选择rt类型(或nrt类型)的请求中的一个请求。仲裁电路210然后选择由设备1rt递送的rt类型请求,而不是由设备1nrt递送的nrt类型请求。

因此,尽管系统已与rt类型请求同时接收到nrt类型请求,但是一旦系统接收到至少一个rt类型请求,系统就必须选择rt类型请求。这是由于以下事实导致的:系统2包括专用于nrt请求的路径(此处为设备1nrt)和专用于rt请求的路径(此处为设备1rt),并且仲裁电路210选择第二路径作为优先级。

尽管本文未示出,但是电路200和/或仲裁电路210可以包括被配置为接收同步信号(例如,信号clk)的输入(例如,电路100rt、100nrt和仲裁电路110jrt、110jnrt、120rt和120nrt)。

此外,尽管本文以三个不同电路的形式示出了电路200、100rt和100nrt,但是电路200可以包括电路100rt和/或电路100nrt。在电路200包括两个电路100rt和100nrt的特定情况下,电路200根据其rt或nrt类型以及它们的优先级等级prt或pnrt将由电路200接收的请求ri直接发送到仲裁电路110jnrt和110jrt。

由于当仲裁电路的输入h上存在rt类型的请求时,仲裁电路210总是选择这种请求,因此系统2被适配为其中rt类型对应于需要实时处理的请求、并且nrt类型对应于不需要实时处理的请求的情况。

图3以框的形式示意性地示出了系统3的另一实施例,系统3包括图1的设备1,并且更具体地在此处包括单个设备1。

系统3可以同时接收达n个请求ri。每个所接收的请求ri可以是rt或nrt类型。另外,每个nrt类型的请求具有优先级等级pnrt,pnrt是在从1到大于或等于2的整数mnrt的范围内的整数。然而,与系统2的情况相反,在系统3中,rt类型请求不具有优先级等级,换言之,所有请求都具有相同的优先级等级prt。因此,没有一个rt类型的请求具有比其他rt类型的请求更高的优先级等级。

系统3然后与图2的系统2的不同之处在于,设备1rt被循环类型的仲裁电路310rt代替,仲裁电路310rt则对应于专用于rt类型请求的处理的路径。在下文中,仅详细说明系统2和3之间的区别。

仲裁电路310rt包括n个输入ei(i是在从1到n的范围内的整数),以能够同时接收(如果需要)n个请求。仲裁电路310rt包括输出sbrt,在其输入ei上存在的请求中,由仲裁电路310rt选择的请求在输出sbrt的电平处可用。

此外,这里仲裁电路210的输入h被耦合(优选地连接)至仲裁电路310rt的输出sbrt,而不是如图2中的情况那样耦合至输出sbrt。此外,电路200的n个输出oirt分别被耦合(优选地连接)到仲裁电路310rt的n个输入ei,而不是如图2中的情况那样耦合至设备1rt的输入eirt。

系统3的操作类似于系统2的操作。

在仅nrt类型的请求具有在该类型的两个请求之间可能不同的优先级等级的情况下,系统3使得能够处理两种类型的请求rt和nrt。

为了处理这种情况,在可能的优先级等级的数目m等于1的情况下,可以设计成一般化与图1相关的设备1的描述,并使用所获得的设备1代替图2的系统的设备1rt。然而,与所描述的系统3相比,这将导致系统2包括附加的循环仲裁电路110rt和附加的电路100rt。

在上述实施例中,利用了循环仲裁电路自身不会产生饥荒情况的事实。此外,由于循环仲裁电路不能考虑这种优先级等级,因此通过电路100、100rt和100nrt来实现对相同类型的请求之间的不同优先级等级的考虑。换言之,利用了电路100、100rt和100nrt与循环仲裁电路之间的协同作用,电路100、100rt和100nrt根据它们的优先级等级来复制它们所接收的请求,而循环仲裁电路则公平地处理它们所接收的请求。这使得能够减少甚至避免所述设备和仲裁系统中的饥荒风险。

在以上结合图2和图3描述的实施例中,已考虑到,请求的类型和优先级等级由两个不同的信息片段示出。但是,可以提供一个信息片段来表示请求的优先级等级和类型。例如,在所描述的实施例中,可以向每个请求提供优先级等级k,k在从1到mnrt+mrt的范围内,使得优先级等级k在从1到mnrt的范围内的请求对应于nrt类型的请求且优先级等级pnrt=k,并且使得在所描述的实施例中,优先级等级k在从mnrt+1到mnrt+mrt的范围内的请求对应于rt类型的请求且优先级等级prt=k-mnrt。基于本公开中给出的功能指示,本领域技术人员能够使得所描述的实施例适应上述情况,并且更一般地适应于表示请求的类型和/或优先级等级的各种可能方式。

此外,尽管已关于图2和图3描述了指示请求是否应当分别进行实时处理的两种类型的请求rt和nrt,但是两种类型的请求可以表示其他信息。例如,请求的rt或nrt类型可以指示请求分别是处于写入模式或处于读取模式的请求,读取请求例如比写入请求具有更高的优先级。

可以在诸如微控制器、微处理器和直接存储器访问电路(dma)的各种电子电路中提供上述实施例和变型。此外,可以在dma电路中提供系统2或3,以实现来自dma电路的不同通道的请求(例如,访问总线的请求)之间的仲裁。根据实现的特定示例,提供了在mnrt等于3、n例如等于4的情况下从dma电路接收请求的系统3。

已描述了各种实施例和变型。本领域技术人员将理解,这些各种实施例和变型的某些特征可以进行组合,并且本领域技术人员将想到其他变型。特别地,关于图1描述的备选实施例(p个仲裁电路的随机选择)适用于关于图2和图3描述的设备100nrt以及关于图2描述的设备100rt。

最后,基于以上给出的功能指示,所描述的实施例和变型的实际实现在本领域技术人员的能力范围内。特别地,尽管已描述了被配置为考虑两种不同类型的请求(nrt和rt)的系统2和3,但是本领域技术人员将能够对系统2和3进行适配,使得他们考虑处理两种以上不同类型的请求。例如,对于每种附加类型的请求,根据该附加类型的请求是否可以具有多个优先级等级、固定优先级仲裁电路210的输入的数目、电路200的输出的数目以及相应适配的电路200的操作,将设备1或循环仲裁电路添加到系统。

这种改变、修改和改进旨在成为本公开的一部分,并且旨在落入本发明的精神和范围内。因此,前面的描述仅是示例性的,并不旨在限制本发明。本发明仅由所附权利要求书及其等效物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1