H04Q7/30 H04L12/40 H04L12/24
1、一种公平的总线仲裁方法,其特征在于,包括如下步骤: 对在同一时钟周期产生的总线申请进行采样;
统计同一时钟周期内申请的个数,并按申请时间的先后对申请进 行排序,赋予每个申请一个队列排序值,该数值代表申请到达的先后 次序,对每个申请进行时间仲裁;
对在同一时钟周期产生的每个总线申请产生一个权重;
根据每个申请的权重,对在同一时钟周期同时到达的申请中,进 行权重仲裁,选出权重最大的一个给予总线使用权。
2、根据权利要求1所述公平的总线仲裁方法,其特征在于,所述 对在同一时钟周期产生的总线申请进行采样步骤中,还包括如下步 骤:用同一时钟对N+1个申请线进行采样,当检测到申请线上的下 降沿时产生总线申请,在同一采样周期内到达的申请将同时产生总线 申请。
3、根据权利要求1所述公平的总线仲裁方法,其特征在于,所述 统计同一时钟周期内申请的个数,并按申请时间的先后对申请进行排 序步骤中,还包括如下步骤;
采用队列的方式进行排序,位于队列头的序列号定为1,为0表 示没有出于序列当中;
申请累加器,统计同一时钟周期内到达申请的个数,队列尾产生 器初值为1,表示队列尾的初始的序列号为1;
队列尾产生器把当前的数值和请累加器的结果累加,表示新的申 请到来,队列尾往后移;申请计数器在申请被允许后减1,表示一个 申请从队列当中清除,队列尾往前移动1;
从队列尾产生器获得目前的队列尾序列号,将这个序列号作为该 申请在队列的初始化序列号,也就是将该申请连接在队列的尾部,同 时队列尾产生器加1,更新队列尾的位置,所有的申请根据采样的时 间次序,排列在队列当中,其中队列头的序列号为1,存放的是最早 到达的申请。
4、根据权利要求1所述公平的总线仲裁方法,其特征在于,所述 对在同一时钟周期产生的每个总线申请产生一个权重的步骤中还包 括如下步骤:
统计总线的使用情况,将占用总线次数少的申请定为权重高,在 N个从设备的系统中,最低的权重定为0,最高定为N。
5、根据权利要求1所述公平的总线仲裁方法,其特征在于,所述 选出权重最大的一个给予总线使用权中还包括如下步骤:
从输出的有效申请线当中,出权重最大的申请,具体步骤如下: 申请表示为S0_REQ0…S0_REQN,权重表示为0…N,表示为二进 制L(k)2 k+L(k-1)2 (k-1)+…+L(0)2 0;
首先检查有效申请的权重中,有没有L(k)为1的,如果有,则最 大的权重必然大于2 k,则把权重大于2 k的申请进行第二级选择S20- S2N,否则,把权重小于2 k的申请进行第二级选择;
上述过程在逻辑实现上表示为:
经过K=LOG2(N+1)级选择后,可选择出权重最大的申请;
当一个申请获得总线授权后,把该申请的权重设为最低,权重比 它小的申请的权重都加1,经过若干次的仲裁后对权重进行若干次调 整,最后,N+1个申请仍然处于N+1个不同的权重中,权重与一次 使用总线的时间间隔有关,时间越长,权重越大,权重越大,允许使 用总线的几率就越高,保证各从设备使用总线的时间。
6、一种公平的总线仲裁装置,其特征在于,包括时间仲裁器、权 重仲裁器及输出接口,所述时间仲裁器对在同一时钟周期产生的总线 申请进行采样并按申请时间的先后对申请进行排序后输送至所述权 重仲裁器中,所述权重仲裁器对每个申请产生一个权重并根据每个申 请的权重,对在同一时钟周期同时到达的申请中,选出权重最大的一 个给予总线使用权。
7、根据权利要求6所述公平的总线仲裁装置,其特征在于,所述 时间仲裁器包括在同一时钟内对N+1个申请线进行采样的采样器、 与所述采样器连接用于统计同一时钟周期内到达申请个数的申请累 加器、对所述累加器中的申请进行排序的队列尾产生器、对所述队列 尾产生器进行管理的队列管理器,所述队列管理器从队列尾产生器获 得目前的队列尾序列号,将该序列号作为该申请在队列的初始化序列 号,排列在输出给权重仲裁器的队列中。
8、根据权利要求6所述公平的总线仲裁装置,其特征在于,所述 权重仲裁器包括串接连接的多级权重选择器,与所述多级权重选择器 连接的权重产生器,所述权重产生器对每个申请产生一个权重,所述 多级选择器根据每个申请的权重,从时间仲裁器输出的同时到达的申 请中,经过多级权重选择器多级选择后,选出权重最大的一个给予总 线使用权通过所述输出接口输出。
技术领域
本发明涉及通信系统中高速总线的仲裁方法,具体涉及通信系统中确 定高速总线使用权的公平仲裁方法,更具体地说,涉及一种可在系统 中确定高速总线使用权的公平仲裁方法,本发明还涉及基于所述方法的仲 裁装置。
背景技术
在系统当中,采用共享总线式的交换,需要实现20块单板总线共 享两套总线。这就要求一种比较公平的总线使用竞争与仲裁方法及装置来 实现。在系统上交换的数据多是语音短包,而且数据包的长度不定。 现有通信系统中的通用仲裁方法是采用轮循的总线仲裁(如UTOPIA2总 线):首先仲裁器轮询下挂总线的使用者,检查其应答信号,再确定总线 的使用权。虽然该方式实现简单,而且对总线下挂的使用者也比较公平。 但是,该方法存在如下缺点:仲裁的延时会随着下挂使用者的增多而线性 增加,对于多是短包的系统,其仲裁效率比较低。而且轮询方式有时不能 保证先申请先使用,即时间上没有得到充分利用。
发明内容
本发明要解决的技术问题在于,提供一种总线仲裁方法和仲裁装置, 可以在时间与权重上都比较公平,这种仲裁方法和装置的延时固定并且比 较小,适用于通信系统实现高速总线主从模式的共享与仲裁。特别是在从 设备比较多的系统当中,仲裁的效率不会随从设备地增加而下降。
本发明上述技术问题这样解决,构造一种在系统中确定高速总线使 用权的公平的总线仲裁方法,包括如下步骤:
对在同一时钟周期产生的总线申请进行采样;
统计同一时钟周期内申请的个数,并按申请时间的先后对申请进行排 序,赋予每个申请一个队列排序值,该数值代表申请到达的先后次序,对 每个申请进行时间仲裁;
对在同一时钟周期产生的每个总线申请产生一个权重;
根据每个申请的权重,对在同一时钟周期同时到达的申请中,进行权 重仲裁,选出权重最大的一个给予总线使用权。
在上述公平的总线仲裁方法中,所述对在同一时钟周期产生的总线申 请进行采样步骤中还包括如下步骤:用同一时钟对N+1个申请线进行采 样,当检测到申请线上的下降沿时产生总线申请,在同一采样周期内到达 的申请将同时产生总线申请。
在上述公平的总线仲裁方法中,所述统计同一时钟周期内申请的个数, 并按申请时间的先后对申请进行排序步骤中还包括如下步骤;
采用队列的方式进行排序,位于队列头的序列号定为1,为0表示没有 出于序列当中;
申请累加器,统计同一时钟周期内到达申请的个数,队列尾产生器初 值为1,表示队列尾的初始的序列号为1;
队列尾产生器把当前的数值和请累加器的结果累加,表示新的申请到 来,队列尾往后移;申请计数器在申请被允许后减1,表示一个申请从队 列当中清除,队列尾往前移动1。
从队列尾产生器获得目前的队列尾序列号,将这个序列号作为该申请 在队列的初始化序列号,也就是将该申请连接在队列的尾部,同时队列尾 产生器加1,更新队列尾的位置,所有的申请根据采样的时间次序,排列 在队列当中,其中队列头的序列号为1,存放的是最早到达的申请。
在上述公平的总线仲裁方法中,所述对在同一时钟周期产生的每个总 线申请产生一个权重的步骤中还包括如下步骤:
统计总线的使用情况,将占用总线次数少的申请定为权重高,在N个 从设备的系统中,最低的权重定为0,最高定为N。
在上述公平的总线仲裁方法中,所述选出权重最大的一个给予总线使 用权中还包括如下步骤:
从输出的有效申请线当中,出权重最大的申请,具体步骤如下:申 请表示为S0_REQ0…S0_REQN,权重表示为0…N,表示为二进制 L(k)2k+L(k-1)2(k-1)+…+L(0)20
首先检查有效申请的权重中,有没有L(k)为1的,如果有,则最大的 权重必然大于2k,则把权重大于2k的申请进行第二级选择S20-S2N, 否则,把权重小于2k的申请进行第二级选择;
上述过程在逻辑实现上表示为:
经过K=LOG2(N+1)级选择后,可选择出权重最大的申请;
当一个申请获得总线授权后,把该申请的权重设为最低,权重比它小 的申请的权重都加1,经过若干次的仲裁后对权重进行若干次调整,最后, N+1个申请仍然处于N+1个不同的权重中,权重与一次使用总线的时间间 隔有关,时间越长,权重越大,权重越大,允许使用总线的几率就越高, 保证各从设备使用总线的时间。
本发明另一问题这样解决,构造一种在系统中确定高速总线使用权 的公平的总线仲裁装置,包括时间仲裁器、权重仲裁器及输出接口,所述 时间仲裁器对在同一时钟周期产生的总线申请进行采样并按申请时间的 先后对申请进行排序后输送至所述权重仲裁器中,所述权重仲裁器对每个 申请产生一个权重并根据每个申请的权重,对在同一时钟周期同时到达的 申请中,选出权重最大的一个给予总线使用权。
在上述公平的总线仲裁装置中,所述时间仲裁器包括在同一时钟内对 N+1个申请线进行采样的采样器、与所述采样器连接用于统计同一时钟周 期内到达申请个数的申请累加器、对所述累加器中的申请进行排序的队列 尾产生器、对所述队列尾产生器进行管理的队列管理器,所述队列管理器 从队列尾产生器获得目前的队列尾序列号,将该序列号作为该申请在队列 的初始化序列号,排列在输出给权重仲裁器的队列中。
在上述公平的总线仲裁装置中,所述权重仲裁器包括串接连接的多级 权重选择器,与所述多级权重选择器连接的权重产生器,所述权重产生器 对每个申请产生一个权重,所述多级选择器根据每个申请的权重,从时间 仲裁器输出的同时到达的申请中,经过多级权重选择器多级选择后,选出 权重最大的一个给予总线使用权通过所述输出接口输出。
实施本发明提供的公平的总线仲裁方法及装置,具有如下优点:采用 两级仲裁,先经过时间仲裁器,保证先申请,先使用;再经过权重仲裁器, 保证使用者占用总线的公平性;为实现时间的公平性,本方法采用申请队 列方式,赋予每个申请一个队列排序值,该数值代表申请到达的先后次序。 通过比较该数值,就可以实现先申请,先允许的仲裁原则。为了实现权重 的公平性,本方法统计总线的历史使用情况,给使用次数低的申请赋予较 高的权重,从而保证总线使用的公平性;仲裁结果由被授权的总线使用者 标号(GNT NUM)和允许使用总线信号(GNT)组成。下挂总线的使用者 根据仲裁结果决定是否享用总线。
附图说明
图1是本发明公平的总线仲裁装置的结构框图;
图2是图1所示本发明公平的总线仲裁装置中权重产生器产生权重排序 时的示意图;
图3是图1所示公平的总线仲裁装置中权重产生器进行仲裁充许示意 图。
具体实施方式
如图1所示,采样器T用同一时钟对N+1个申请线进行采样,当检测 到申请线上的下降沿时产生总线申请,在同一采样周期内到达的申请将同 时产生总线申请,因此时间仲裁器的精度为一个时钟周期。时间仲裁器采 用队列的方式实现,队列头的序列号为1,为0表示没有出于序列当中, 具体实现过程如下:
申请累加器,统计同一时钟周期内到达申请的个数,队列尾产生器初 值为1,表示队列尾的出始的序列号为1。队列尾产生器把当前的数值和 请累加器的结果累加,表示新的申请到来,队列尾往后移。申请计数器在 申请被允许后减1,表示一个申请从队列当中清除,队列尾往前移动1。 举例说明,假设某一时刻队列尾产生器的值为P,此时申请脉冲SRQ(I) 到来,队列管理器(I)就从队列尾产生器获得目前的队列尾序列号P,将 P作为该申请在队列的初始化序列号,也就是将该申请连接在队列的尾部, 同时队列尾产生器D加1,更新队列尾的位置。这样,所有的申请就根据 采样的时间次序,排列在队列当中,其中队列的头序列号为1,存放的是 最早到达的申请。
新申请从队列尾产生器D获得处于队列尾的初始化序列号,队列管理 器(B0-BN)根据反馈信息:总线仲裁应答信号(ACK)和被授权的总 线使用者标号(GNT_NUM),更新各申请在队列中的位置。其中ACK是 仲裁结果已经被从设备接收,可以进行下一个申请的仲裁的指示标记。 GNT_NUM为仲裁输出的允许适用总线的申请的标号。队列管理器更新序 列号的过程如下:在接收到ACK信号,表明标号为GNT_NUM的从设备 已经接收到仲裁结果,因此它的申请的序列号清为0,即将该申请清除出 队列。对于其它标号不等于GNT_NUM且处于队列头的申请(即序列号为 1),维持为1。其它非队列头的申请(序列号大于1),序列号减1,即队 列中的申请往前移。队列管理器同时还将处于队列头的申请送往权重仲裁 器。
权重仲裁器的输入为时间仲裁器的输出,其输出包括授权的总线使用 者标号(GNT_NUM)、总线仲裁结果输出指示(GNT)。其中GNT_NUM 和GNT作为最终的仲裁结果输出,把总线使用权交给标号为GNT_NUM 的总线申请从设备。
如图1所示,多级权重选择器S,权重产生器,共同组成了权重仲裁器。 权重产生器,公平的为每个申请产生一个权重,选择器根据申请的权重, 从时间仲裁器输出的同时到达的申请中,选出权重最大的一个给予总线使 用权。
权重产生器工作原理:它实际上是一个总线使用历史统计器,在N个 从设备的系统中,最低的权重为0,最高为N。算法统计总线的历史使用 情况,让占用总线次数少的申请权重高。
算法如下:
给标号I的申请赋权重初值I,如图2a所示,当一个申请(标号为I) 获得总线授权后,把该申请的权重设为最低,权重比它小的申请的权重都 加1,如图2b。经过若干次的仲裁后,权重产生器用图2b的方式对权重 进行了若干次调整,最后,N+1个申请仍然处于N+1个不同的权重中,不 过此时各个申请对应的权重已经没有初始化的那样有规律。但是各申请的 权重在统计上,权重与一次使用总线的时间间隔有关,时间越长,权重越 大。权重越大,允许使用总线的几率就越高,这就保证各从设备的使用总 线的时间。
选择器S的实现的功能为采用对分选择的算法,从时间仲裁器输出的 有效输出申请线当中,出权重最大的申请。具体算法如下:申请 S0_REQ0…S0_REQN,权重0…N,表示为二进制L(k)2k+L(k-1)2(k-1)+… +L(0)20。首先检查有效申请的权重中,有没有L(k)为1的,如果有,则最 大的权重必然大于2k,则把权重大于2k的申请送往第二级选择器S20- S2N,否则,把权重小于2k的申请送往第二级选择器。上述过程在逻辑实 现上可以表示为:
可用布尔表达式表示为 如此经 过多级选择,最终选出权重最大的申请。采用这种方式要经过K=LOG2 (N+1)级选择器就能选择出权重最大的申请。当然,选择器也可以采用 冒泡法实现,但比较次数随着N的增加而增多,硬件实现上延时比较大。
权重仲裁器根据各申请的权重,从高到低每次输出一个总线使用授权。 由输出接口器检测到从设备的应答信号“忙”(BUSY),发现BUSY信 号则将输出ACK信号,和GNT_NUM一起,控制时间仲裁器及权重仲裁 器进行下一个申请的仲裁,新的仲裁结果受从设备的应答BUSY信号控制, 等使用总线的从设备释放总线后才输出。这样,两个仲裁器在总线使用期 间就可以进行下一个仲裁过程,使用结束立即可以输出结果,减少仲裁的 时延,从而提高总线的利用效率。
本发明方法可采用VHDL语言编写,装置可采用ALTERA公司的 FLEX10K50来实现。
本文发布于:2023-04-13 03:48:55,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/85768.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |