【技术实现步骤摘要】
优先级动态调整的差额加权轮询仲裁方法和仲裁器
[0001]本申请涉及分布式存储
,特别是涉及一种优先级动态调整的差额加权轮询仲裁方法和仲裁器。
技术介绍
[0002]现有层次化存储中,常使用AHB总线对存储器进行访问。AHB是一种总线协议,该协议是高级微控制器总线架构中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线,满足高性能和复杂的SoC(System on Chip)设计的需求。
[0003]AHB总线一般采用多主多从的拓扑结构。即同一个主机能分时向不同的从机发送数据;或是同一个从机能分时接收来自不同主机的数据。然而,如图1所示,当多个主机申请向同一个从机发送数据时,就会涉及总线对主机的授权仲裁问题,对于相同或不同优先级的多个主机,若不能合理分配权限,易造成某路主机堵塞、降低系统传输效率等问题。因此,保证对各主机请求权限的合理分配,是突破SoC性能瓶颈的重要组成部分。
[0004]仲裁机制的基本原理是根据各个主机的请求信号,按照某种仲裁原则,产生选通信号,使得对应的主机能分时与从机进行数据交互。仲裁算法通常有:固定优先级仲裁器,轮询优先级仲裁器。
[0005](1)固定优先级仲裁器,在该仲裁方法中每个处理器访问共享资源的优先级是固定的,传输任务较重的主设备优先级相对较高,如果几个主设备同时申请总线使用权,优先级最高的设备将得到授权。这种仲裁算法的优点是设计简单,面积消耗小。但因为最高优先级的主设备发出申请后,总是能获得授权,而其他优先级较低的设备,一直不能获得授权。如果高优 ...
【技术保护点】
【技术特征摘要】
1.一种优先级动态调整的差额加权轮询仲裁方法,其特征在于,所述方法包括:接收若干个主机的请求,所述请求包括轮询仲裁申请位和固定优先级编码;将具有相同的所述固定优先级编码的主机分为一组,得到若干个主机组;所述主机组的优先级编码由组内主机的所述固定优先级编码确定;根据每个主机组中所有主机的轮询仲裁申请位,确定每个主机组的仲裁申请变量;设置仲裁申请变量掩码初始值的每位都为1;根据每个主机组的所述仲裁申请变量和所述仲裁申请变量掩码,确定授权分组;如果有授权分组时,同时接收授权分组中每个主机的配额和发送额,并根据每个主机的所述发送额和所述配额确定每个主机的余额;所述配额是主机可以发送的长期平均字节数;所述发送额是指每次授权后主机可发送的字节数量;所述余额用于表示所述配额的积累和消耗情况;根据所述授权分组中每个主机的所述轮询仲裁申请位、所述配额、所述发送额以及所述余额进行差额加权轮询仲裁,直到当前授权分组的差额加权轮询仲裁结束为止,将所述仲裁申请变量掩码的每位都置为0,在一个时钟周期以后所述仲裁申请变量掩码所有位自动置为1,继续确定下一个授权分组,并对下一个授权分组的主机进行差额加权轮询仲裁。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:主机组中的主机通过发送请求来改变其固定优先级编码的步骤;该步骤具体包括:同时判断请求改变固定优先级编码的m主机所在X1主机组和变化后的固定优先级编码对应的X2主机组是否处于空闲状态;若X1主机组和X2主机组至少有1个不处于空闲状态时,则等待不处于空闲状态的X1主机组和/或X2主机组为空闲状态;当X1主机组和X2主机组同时处于空闲状态时,则更改m主机的固定优先级的命令生效,将m主机重新分组到X2主机组。3.根据权利要求1所述的方法,其特征在于,根据每个主机组的所述仲裁申请变量和所述仲裁申请变量掩码,确定授权分组,包括:将第一个主机组的所述仲裁申请变量和所述仲裁申请变量掩码进行按位与,如果得到的结果不为0,则将第一个主机组作为授权分组;如果得到的结果为0,则继续根据第二个主机组的所述仲裁申请变量和所述仲裁申请变量掩码按位与的结果进行判断,直到最后一个主机组,如果最后一个主机组的所述仲裁申请变量和所述仲裁申请变量掩码按位与后结果仍为0,则第一级固定优先级仲裁器,第二级差额加权轮询仲裁器处于空闲状态。4.根据权利要求1所述的方法,其特征在于,主机的所述请求由3个bit位构成,第0bit位是轮询仲裁申请位,第1bit位和第2bit位是固定优先级编码;根据每个主机组中所有主机的轮询仲裁申请位,确定每个主机组的仲裁申请变量,包括:将每个主机组中所有主机的所述请求的第0bit位进行拼接,得到每个主机组的仲裁申请变量。5.根据权利要求1所述的方法,其特征在于,根据所述授权分组中每个主机的所述轮询仲裁申请位、所述配额、所述发送额以及所述余额进行差额加权轮询仲裁,包括:
判断所述授权分组的第一个主机的所述轮询仲裁申请位等于1,第一个主机对应的余额大于发送额是否同时成立;如果同时成立,则所述授权分组的第一个主机获得授权,所述授权分组的第一个主机发送数据,直到所述授权分组的第一个主机发送完数据为止,将所述授权分组的第一个主机的余额更新为所述授权分组的第一个主机的余额减去所述授权分组的第一个主机的发送额得到的值;对所述授权分组的下一个主机进行授权判断,并根据判断结果进行数据发送处理,直到遍历完所述授权分组的中的所有主机为止,将主机的余额更新为:cre_cnt[i]=cre_cnt[i]+quantum[i],其中,cre_cnt[i]为第i个主机的余额,quantum[i]为第i个主机的配额;将所述仲裁申请变量掩码的各位置0;如果不同时成立,则对所述授权分组的下一个主机进行授权判断,并根据判断结果进行数据发送处理;遍历判断所述授权分组的所有主机的余额等于0是否均成立,或所述授权分组的所有主机的余额小于对应发送额是否均成立,如果有一个成立,则将主机的余额更新为:cre_cnt[i]=cre_cnt[i]+quantum[i]。6...
【专利技术属性】
技术研发人员:詹贵阳,刘功哲,冯华,熊民权,马华,李焱明,
申请(专利权)人:上海芯钛信息科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。