首页> 中国专利> 动态优先级的仲裁方法及装置

动态优先级的仲裁方法及装置

摘要

本发明公开了一种动态优先级的仲裁方法及装置,其中该方法包括:分别设置第一级轮询仲裁器以及第二级优先级仲裁器,其中,第一级轮询仲裁器的数量与多个源端包括的优先级的数量相同;接收来自多个源端请求任务的任务请求信号,并将优先级相同的请求任务分配至同一第一级轮询仲裁器;每个第一级轮询仲裁器分别将接收到的多个优先级相同的请求任务轮询处理得到一个请求任务,并将该请求任务输送至第二级优先级仲裁器;第二级优先级仲裁器接收到多个请求任务,并向目的端输出优先级最高的请求任务的输出结果。通过本发明,能够同时融合固定优先级、轮询方式和动态优先级三种仲裁机制,提高了仲裁处理效率。

著录项

  • 公开/公告号CN101887382A

    专利类型发明专利

  • 公开/公告日2010-11-17

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201010212235.9

  • 发明设计人 余金清;肖礼盛;陈德炜;

    申请日2010-06-28

  • 分类号G06F9/50(20060101);

  • 代理机构11276 北京市浩天知识产权代理事务所;

  • 代理人刘云贵;刘海英

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2023-12-18 01:05:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-11

    专利权的转移 IPC(主分类):G06F9/50 登记生效日:20180424 变更前: 变更后: 申请日:20100628

    专利申请权、专利权的转移

  • 2016-11-23

    授权

    授权

  • 2016-10-05

    专利申请权的转移 IPC(主分类):G06F9/50 登记生效日:20160908 变更前: 变更后: 申请日:20100628

    专利申请权、专利权的转移

  • 2012-05-09

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20100628

    实质审查的生效

  • 2010-11-17

    公开

    公开

说明书

技术领域

本发明涉及通讯领域,尤其涉及一种动态优先级的仲裁方法及装置。

背景技术

在设计中,源端和目的端存在三种对应关系:一对一,一对多和多对一。其中以多个源端对应一个目的端关系最为复杂,电路结构如图1所示。多个源端通过多路选择器(MUX)连接至目的端,它需要一套仲裁机制辅助工作,以保证多个源端能分时与目的端数据交互。

仲裁机制的基本原理是根据各个源端的请求信号,按照某种仲裁原则,产生选通信号,使得对应的源端能分时与目的端数据交互。仲裁原则通常分为三种:固定优先级别、循环优先级别、轮询优先级。

一、固定优先级别。如图2所示,分别规定每个源的优先级别,图中0代表优先级最高,2代表优先级最低,仲裁时每次都依照优先级由高到低的顺序响应源端请求。例如:当源0和源2同时请求数据时,依照优先级规则,源0的优先级比源2高,因此先响应源0的请求,待源0响应结束后,再重新确认源0和源1都无请求的情况下,才响应源2的请求。

二、循环优先级别。如图3所示,每当优先级最高的源端被响应时,都将此优先级最高的源端设为最低优先级,余者优先级依次提高,从而使得每个源端在循环中都能获得平等优先级。图中0代表优先级最高,2代表优先级最低,仲裁时每次都依照当前优先级由高到低的顺序响应源端请求。例如:当源0和源2同时请求数据时,先设置源0的优先级为0,源2的优先级为2,则源0的优先级高于源2,于是先响应源0的请求。待源0响应结束后,重新设定源0的优先级为2,源1的优先级为0,源2的优先级为1。此时只须确定源1无请求,便可响应源2的请求,而无须再关心源0是否有请求。

三、轮询优先级。如图4所示,其源0、1和2处在同一优先级。例如:若每个源有多个任务同时请求,则执行的方式为,分别输出源0、1和2的一个任务,依次类推,若其中一个源任务处理完,假设为源0不再请求仲裁,则下次输出源1与源2的任务。同理,若源2不再请求输出,则仲裁输出源0与源1的请求。

由上面的描述可知,三种仲裁机制的处理过程单一,不能灵活的根据数据的需要来配置仲裁机制的处理方式,如果遇到更多的源同时请求时,其处理效率会降低,并且可移植性不高。

发明内容

本发明提供一种动态优先级的仲裁方法及装置,以解决上述问题。

根据本实施例的动态优先级的仲裁方法包括:分别设置第一级轮询仲裁器以及第二级优先级仲裁器,其中,第一级轮询仲裁器的数量与多个源端包括的优先级的数量相同;接收来自多个源端请求任务的任务请求信号,并将优先级相同的请求任务分配至同一第一级轮询仲裁器;每个第一级轮询仲裁器分别将接收到的多个优先级相同的请求任务轮询处理得到一个请求任务,并将该请求任务输送至第二级优先级仲裁器;第二级优先级仲裁器接收到多个请求任务,并向目的端输出优先级最高的请求任务的输出结果。

根据本实施例的动态优先级的仲裁装置包括:请求映射优先级与保持单元,用于接收来自多个源端请求任务的任务请求信号,并将优先级相同的请求任务分配至同一第一级轮询仲裁器;其中,第一级轮询仲裁器的数量与多个源端包括的优先级的数量相同;多个第一级轮询仲裁器,其中每个第一级轮询仲裁器用于分别将接收到的多个优先级相同的请求任务轮询处理得到一个请求任务,并将该请求任务输送至第二级优先级仲裁器;第二级优先级仲裁器,用于接收来自多个第一级轮询仲裁器的多个请求任务,并向目的端输出优先级最高的请求任务的输出结果。

与现有技术相比,根据本发明上述技术方案,本发明可以同时融合固定优先级、轮询方式和动态优先级三种仲裁机制,通过配置优先级,实现效率优先,并兼顾了的公平性,使得动态优先级仲裁所用时间与处理方式不随源端数量的增加而增加,克服了一般优先级仲裁实现方式中效率不足的缺点。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为现有的仲裁机制典型的应用场景示意图;

图2为现有的固定优先级仲裁原理图;

图3为现有的循环优先级仲裁原理图;

图4为现有的轮询仲裁原理图;

图5为根据本发明实施例的动态优先级的仲裁方法的流程图;

图6为根据本发明实施例的动态优先级的仲裁装置的框图;

图7为根据本发明实施例的动态优先级的仲裁装置的优选结构的框图;

图8为根据本发明实施例的命令生效单元工作处理的流程图;

图9为根据本发明实施例的请求映射优先级与保持单元工作处理的流程图;

图10为根据本发明实施例的优先级请求处理单元工作处理的流程图;

图11为根据本发明实施例的第一级仲裁单元工作处理的流程图;

图12为根据本发明实施例的第二级仲裁单元工作处理的流程图。

具体实施方式

本发明提出一种利用分级仲裁处理结构,实现动态优先级仲裁机制的技术方案。本发明可以同时融合固定优先级、轮询方式和动态优先级三种仲裁机制,通过配置优先级,实现效率优先,并兼顾了的公平性,使得动态优先级仲裁所用时间与处理方式不随源端数量的增加而增加,克服了一般优先级仲裁实现方式中效率不足的缺点。

为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明作进一步地详细说明。

根据本发明的实施例,提供了一种动态优先级的仲裁方法。

图5是根据本发明实施例的动态优先级的仲裁方法的流程图,如图5所示,包括:

步骤502,分别设置第一级轮询仲裁器以及第二级优先级仲裁器,其中,第一级轮询仲裁器的数量与多个源端包括的优先级的数量相同;

步骤504,接收来自多个源端请求任务的任务请求信号,并将优先级相同的请求任务分配至同一第一级轮询仲裁器;

步骤506,每个第一级轮询仲裁器分别将接收到的多个优先级相同的请求任务轮询处理得到一个请求任务,并将该请求任务输送至第二级优先级仲裁器;

步骤508,第二级优先级仲裁器接收到多个请求任务,并向目的端输出优先级最高的请求任务的输出结果。

下面详细描述上述各处理的细节。

(一),确定待仲裁的源数量,和优先级个数。

1.根据目的端的读写并发能力,确定待仲裁源的数量。例如:目的端读写数据可同时操作,则将源端的读数据请求和写数据请求分别仲裁,此时每个仲裁机制只统计一种请求操作的源端数量。

2.将每个待仲裁的源排序,使得每个源都能获得唯一的序号。此序号的顺序也是仲裁机制在轮询仲裁处理的输出请求顺序。

3.根据源端的数量已经请求源的重要性,确定待仲裁源的优先级个数。

(二),确定每个源请求优先级的生效时间。

根据源端的请求是否完成来确定是否要更新改源请求的优先级。若某一源请求在之前没有发生请求给仲裁器,或发送的请求已被响应,则取该源请求外部配置的优先级(不论优先级有没有变化);否则保持该源端的优先级。或者还可以根据第一级仲裁器是否“忙”来判断优先级生效时间,如源0之前对应的优先级为0,而现在外部要设置其优先级为1,则判断当前优先级0映射的第一级仲裁器是否“忙”,若是,则源0的优先级保持为0;若不是,则更新源0的优先级为1。

(三),设置两级仲裁器,第一级仲裁采用轮询处理,第二级仲裁采用优先级处理。

1.设计轮询优先级仲裁器。如,若有源0同时请求3个任务要求处理,若有源1请求任务个数为2,若有源2请求任务个数为3,且源0,1,2的优先级相同,则仲裁响应输出的顺序为0,1,2;0,1,2;0,2。

2.设计优先级仲裁器。如,若有源0请求任务个数为3,对应的优先级为0,最高;若有源1请求任务个数为2,对应的优先级为1,其次;若有源2请求任务个数为3,对应的优先级为0,最低;则仲裁响应输出的顺序为0,0,0;1,1;2,2,2。

(四),根据配置的优先级个数,设置第一级仲裁器数量(每个优先级映射一个第一级仲裁器);根据第一步判断出的仲裁优先级数量,设置第一级仲裁的数量。即每个优先级映射一个轮询处理的仲裁器。

(五),根据第二步中的生效时间,将同一优先级请求的任务分配给对应的第一级仲裁处理,具体包括:

1.根据第二步源端请求优先级的生效时间和第四步轮询仲裁器对应的优先级,建立源端与轮询优先级仲裁器的一一映射关系。

2.判断源是否有任务请求,若有请求则将请求发送给对应的轮询优先级仲裁器,同时收集每个轮询仲裁器源端请求的数量(每个源不论多少个请求,一次只响应一个请求),送给轮询仲裁器仲裁。

(六),每个第一级仲裁器按照轮询的方式输出一个仲裁结果到第二级仲裁中。在第一级仲裁器,将第五步统计的源请求个数,通过第三步轮询处理方式输出仲裁结果。

(七),第二级仲裁在接收到第一级仲裁请求任务之后,按照任务的优先级输出最高的优先级任务。在第二级仲裁器(完全优先级仲裁器),将第六步第一级仲裁器输出的仲裁结果按照第三步完全优先级处理方式输出仲裁结果。

(八),第七步输出的结果同时反馈到第一级仲裁器,指示该任务已被仲裁器响应,同时轮询输出另一个同样优先级任务的请求,具体包括:

1.将第七步输出的仲裁结果按照其对应bit位反馈给对应的第一级仲裁器,例如:源0对应的bit位为第0位,源1对应的bit位为第1位,源2对应的bit位为第2位;

2.反馈到第一级仲裁器的输出响应结果,送入到对应的第一级仲裁器。同时清除对应的源请求任务,并将总的源请求个数减一(或bit清零)。

(九),若某个优先级的第一级仲裁任务都处理完,则回到第二步;否则回到六步继续仲裁。例如:判断第八步输出结果是否为零,若为0,表示该轮询优先级仲裁处理已经处理完第四步收集的源请求个数,回到第二步等待新的源请求。若不为0,表示没有响应完任务请求,回到第六步继续仲裁。

经过上述处理,同时融合固定优先级、轮询方式和动态优先级三种仲裁机制,通过配置优先级,实现效率优先,并兼顾了的公平性。

根据本发明的实施例,还提供了一种动态优先级的仲裁装置。

图6是根据本发明实施例的动态优先级的仲裁装置的框图,如图6所示,该装置包括:

请求映射优先级与保持单元10,用于接收来自多个源端请求任务的任务请求信号,并将优先级相同的请求任务分配至同一第一级轮询仲裁器;其中,第一级轮询仲裁器的数量与多个源端包括的优先级的数量相同;多个第一级轮询仲裁器20,其中每个第一级轮询仲裁器用于分别将接收到的多个优先级相同的请求任务轮询处理得到一个请求任务,并将该请求任务输送至第二级优先级仲裁器;第二级优先级仲裁器30,用于接收来自多个第一级轮询仲裁器的多个请求任务,并向目的端输出优先级最高的请求任务的输出结果。

优选地,本发明实施例应用于多个源端对应一个目的端,本发明实施例所实现的仲裁机制是使得多个源端动态可配的优先级获取目的端的数据。

下面结合图7至图12描述本发明实施例。根据本发明,首先确定待仲裁的源端数量,为每个待仲裁的源端排序。图7为根据本发明实施例的动态优先级的仲裁装置的优选结构的框图。在图7中,假设3个源端向目的端请求数据。如图7所示,在图6所示的基础上,该装置还包括:多个配置优先级命令生效单元(即命令生效单元),多个优先级请求处理单元,以及设置单元(图中未示),用于分别设置多个源端的优先级。参考图7,三个配置优先级命令生效单元(即命令生效单元),分别与源0、源1和源2对应,每个配置优先级命令生效单元并行独立工作,以便判断外部配置(或更改)各个源的优先级是否生效。

图8是根据本发明实施例的命令生效单元工作处理的流程图。以其中源0为例,外部要求更改源0任务优先级请求时,输出源0对应的新优先级命令,即要求源0更新其任务优先级请求;当收到源0更改优先级命令后,判断源0之前对应的优先级映射的第一级仲裁器是否是在空闲状态,若是在空闲状态,则生效源0新的优先级命令,否则等待源0对应的第一级仲裁器进入空闲状态。

图9是根据本发明实施例的请求映射优先级与保持单元工作处理的流程图。承上述例子,源0,源1,源2都会根据外部命令配置的优先级,来将其任务请求映射到其对应优先级的第一级仲裁器里。假定源0的优先级通过外部命令配置由0优先级配置为1优先级,则当配置命令生效后,源0的任务请求由原来请求第一级仲裁器0处理其任务请求,变为请求第一级仲裁器1来处理其任务请求。这里,第一级仲裁器0,专门用于处理优先级为0的任务请求;第一级仲裁器1,专门用于处理优先级为1的任务请求。

图10是根据本发明实施例的优先级请求处理单元工作处理的流程图。优先级请求处理单元收集各个源请求任务到第一级仲裁器里的数量。如仲裁优先级为0的第一级仲裁器,当该仲裁器还在仲裁处理输出请求时,或已仲裁输出结果,但是第二级仲裁没有响应第一级仲裁时,该优先级请求处理单元会继续收集对应这个优先级的各个任务请求;否则将收集到的任务请求送到对应的第一级仲裁器,同时再重新收集任务请求。这里对应的每个优先级收集任务请求的方法都是一样的。

图11是根据本发明实施例的第一级仲裁处理单元(即轮询仲裁器)工作处理的流程图。仲裁器在判断有外部任务请求后,进入收集任务请求状态,收集到任务后,进入仲裁处理,该仲裁处理采用轮询方式,即每个任务请求的优先级是相同的。这里以优先级为0映射的第一级仲裁器为例,假设源0,源1,源2的优先级相同且都为0,同时源0,源1,源2都有任务请求,则仲裁器只判断有这些源有任务请求,但不会判断每个源有多少个任务请求,即每个源一次只能发送一个任务请求给对应优先级的第一级仲裁器。第一级仲裁器采用轮询方式输出仲裁结果给第二级仲裁器,假设第一级仲裁输出结果为源0的请求,则源0被送入第二级仲裁器,等待第二级仲裁器响应,若第二级仲裁器没有响应这个请求,则第一级仲裁器一直输出这个任务请求,直到第二级仲裁器响应为止;若第二级仲裁器响应了这次请求后,则反馈这个响应给第一级仲裁器,告诉第一级仲裁器源0的请求已经被响应,则第一级会去掉源0的请求,同时仲裁出源1的请求给第二级仲裁器响应。如此,直到第二级仲裁器响应了源2的请求后,反馈给第一级仲裁器,此时第一级仲裁器判断该次任务的所有请求都已经处理,则仲裁器跳到空闲状态继续等待下次任务请求。

图12是根据本发明实施例的第二级仲裁处理单元(即优先级仲裁器)工作处理的流程图。第二级仲裁器在空闲状态接收来自第一级仲裁器的输出请求,当有第一级仲裁器输出的请求后,第二级仲裁器进入仲裁处理状态,在所有的第一级仲裁请求里,输出优先级最高的那个第一级仲裁器的请求。然后第二级仲裁器再回到空闲状态,接着处理下一个请求,此时可以接收响应的第一级仲裁器的另一个任务请求。第二级仲裁器输出的响应根据响应的结果将该响应反馈给对应的第一级仲裁器。

综上所示,根据本发明上述技术方案,集合了固定优先级、轮询方式和动态优先级三种仲裁机制,使得动态优先级仲裁所用时间与处理方式不随源端数量的增加而增加,既实现了公平性也兼顾效率优先。

以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号