一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种仲裁系统的制作方法

2023-02-06 11:56:50 来源:中国专利 TAG:


1.本发明涉及仲裁器技术领域,具体涉及一种仲裁系统。


背景技术:

2.仲裁器主要用于在多个数据源同时发出请求时,根据相应的优先级优先授权哪一个数据源,目前常用的仲裁器分为固定优先级的仲裁器和轮询仲裁器。目前除了固定仲裁器之外,也有一部分是为了达到某种用途将多个固定优先级的仲裁器或者轮询仲裁器组合得到一个整体的仲裁器,例如为了按照某种规则选取信号的用途,但是组合之后的仲裁器作为一个整体,仲裁器的仲裁优先级相当于固定仲裁器的优先级。但是由于目前仲裁器中各个输出通道之间相互独立,会出现在同一时钟周期下仲裁器同时授权两个或者两个以上输出通道输出相同数据源的指令,此时系统同时返回两个处理后的数据给同一个数据源会发生系统错误。


技术实现要素:

3.为了解决上述技术问题,本发明的目的在于提供一种仲裁系统,所采用的技术方案具体如下:
4.一种仲裁系统,所述仲裁系统包括:m个存储单元,随机排序模块p和仲裁器a;仲裁器a包括m个预处理模块和m个子仲裁器,m个子仲裁器按照仲裁优先级由高到低的顺序构成仲裁序列a={a1,a2,

,ai,

,am},ai为a中的第i个子仲裁器,i的取值范围为1到m。
5.m个存储单元共享多个数据源。
6.随机排序模块p包括m个输入通道和m个输出通道q={q1,q2,

,qj,

,qm},其中qj为第j个输出通道,每个输入通道连接一个存储单元,qj通过一个预处理模块yi连接子仲裁器ai,优先级高于ai的前i-1个子仲裁器的输出分别连接yi构成级联结构;其中,p的输出通道q的优先级顺序等于a中子仲裁器的仲裁优先级顺序。
7.其中,预处理模块yi根据级联结构获取优先级高于ai的i-1个子仲裁器的输出结果得到授权的数据源,并从qj的输出结果中将授权的数据源排除得到ai的输入。
8.本发明具有如下有益效果:
9.本发明实施例通过将高优先级的所有子仲裁器的仲裁结果级联到下一级子仲裁器,将随机排序模块输出通道输出的结果中排除仲裁结果,得到下一级子仲裁器的输入,以达到下一级仲裁器的仲裁结果中不可能出现已授权的数据源,也即达到仲裁器在整体输出结果互斥,将仲裁器的不同输出通道授权给不同的数据源。
附图说明
10.为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,
还可以根据这些附图获得其它附图。
11.图1为本发明一个实施例所提供的一种仲裁器的框图;
12.图2为本发明另一个实施例提供的一种仲裁系统的示意图。
具体实施方式
13.为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种基于仲裁器的均衡仲裁方法以及一种仲裁系统,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一个实施例。此外,一个或多个实施例中的特定特征、结构、或特点可由任何合适形式组合。
14.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
15.实施例一
16.下面结合附图具体的说明本发明所提供的一种基于仲裁器的均衡仲裁方法的具体方案。
17.一种基于仲裁器的均衡仲裁方法,其中仲裁器的第一输入通道与随机排序模块级联,所述随机排序模块包括若干个第二输入通道和若干个第二输出通道,其中第二输入通道的数量和第二输出通道的数量相等;所述随机排序模块的若干个第一输入通道共享多个数据源;所述随机排序模块用于生成随机数,其中所述随机数的位数与第二输出通道的数量相同,每一位随机数依次对应一个第二输出通道;根据排序算法移动随机数,在随机数移动时相应的移动第二输出通道的排列顺序,移动后的第二输出通道的顺序为数据源随机输出的优先级顺序;按照所述随机输出的优先级顺序将相应的数据源输出至所述仲裁器的输入通道进行仲裁。
18.具体的,为了达到公平仲裁的目的,本发明实施例在仲裁器的输入端增加一个随机排序模块,为了表述方便,该随机排序模块的输入通道和输出通道分别称为第二输入通道和第二输出通道,其中该随机排序模块的所有第二输入通道共享多个数据源,每个输出通道输出某一个数据源的概率均相同。随机排序模块的作用是利用第二输出通道的优先级确定每组数据源的仲裁顺序。其中随机排序模块包括随机数发生器,该随机数发生器用于生成随机数。其中排序算法包括冒泡排序算法、选择排序算法、插入排序算法等。
19.请参阅图1,作为一个示例,以4输入4输出的随机排序模块连接一个4输入的仲裁器,随机数发生器采用lfsr随机数发生器,生成16位随机数r[15:0]为例,按照输出通道的数量取随机数的位数,由于随机排序模块的输出通道共计4个,因此取随机数中的低4位r[3:0],当然在其他实施例中也可以取随机数的高4位;将低4位随机数r[3:0]与4个输出通道进行一一映射,并按照排序算法将随机数中的1全部右移为例。将随机数中的1全部右移的方法具体包括:对于随机排序模块的4个输出通道:a输出通道、b输出通道、c输出通道、d输出通道,若随机数发生器生成的8位随机数r[7:0]为10111100,取随机数的低四位r[3:0]得到1100,将低四位随机数r[3:0]与4个输出通道进行一一映射得到a通道对应随机数r[3]为1、b通道对应随机数r[2]为1、c通道对应随机数r[1]为0、d通道对应随机数r[0]为0,也即随机数1100对应初始的第二输入通道的排列顺序为abcd。以冒泡排序位列,其按照冒泡排
序算法将随机数中1100的1全部右移之后随机数的结果为0011,在移动随机数的过程中相应的移动第二通道的排列顺序,则第二输出通道的排列顺序为cdab。
[0020]
需要说明的是,在其他实施例中随机数发生器还可以产生10位随机数等,随机数发生器所产生的随机数的位数可以根据需求设置。
[0021]
优选的,利用以下排序算法移动随机数:以相邻的两个元素为一组将随机数划分为多个小组,比较小组内的两个元素,在满足交换条件时交换两个元素的位置,得到随机数的第一排列顺序;比较随机数的第一排列顺序中相邻小组之间相邻的元素,在满足交换条件时交换两个元素的位置,得到随机数的第二排列顺序;比较随机数的第二排列顺序中小组内的两个元素,在满足交换条件时交换两个元素的位置,得到随机数的第三排列顺序;比较随机数的第三排列顺序中相邻小组之间相邻的元素,在满足交换条件时交换两个元素的位置,得到随机数的第四排列顺序;所述随机数的第四排列顺序为随机数的期望排列顺序。具体的,以高位随机数大于低位随机数为交换条件,低四位随机数r[3:0]为1100、第二输出通道当前的排列顺序为abcd为例,共计需要有4轮交换操作;第一轮为:将低4为随机数r[3:0]划分为两组,其中r[3]和r[2]划分为一组、将r[1]和r[0]划分为一组,比较r[3]和r[2]中元素的大小,由于r[3]和r[2]分别对应11,r[3]中的元素等于r[2]中的元素,不满足交换条件不进行交换;同理比较r[1]和r[0],由于r[1]和r[0]中的元素分别对应00,r[1]中的元素等于r[0]中的元素,不满足交换条件不进行交换;因此在第一轮的交换操作中,得到的随机数的第一排列顺序r[3:0]为1100。第二轮的交换操作是比较相邻小组之间相邻的元素,对于r[3]和r[2]、r[1]和r[0]这两组来说,r[2]和r[1]为相邻小组之间相邻的元素,因此比较r[2]和r[1]中元素的大小,由于随机数的第一排列顺序r[3:0]为1100,其中r[2]和r[1]分别为1和0,r[2]中的元素大于r[1]中的元素,满足交换条件,将随机数中的元素进行交换并且同时交换第二输出通道的排列顺序,交换之后得到r[2]和r[1]分别为0和1,同时b和c交换位置;因此在第二轮的交换操作中,得到的随机数的第二排列顺序r[3:0]为1010,第二通道的排列顺序为acbd。对于第三轮的交换操作,与第一轮的交换操作的原理相同,比较小组内随机数的大小,对于满足交换条件的进行交换;由于随机数的第二排列顺序r[3:0]为1010,分别对r[3]和r[2]、r[1]和r[0]这两组中的元素进行比较,r[3]中的元素大于r[2]中的元素、r[1]中的元素大于r[0]中的元素,两组都满足交换条件,分别进行交换之后得到的随机数的第三排列顺序r[3:0]为0101,得到的第二输出通道的排列顺序为cadb。对于第四轮的交换操作,与第二轮的交换操作的原理相同,比较相邻小组之间相邻的元素大小,对于满足交换条件的进行交换;由于随机数的第三排列顺序为0101,在对相邻小组之间相邻的r[2]和r[1]中的元素进行比较,满足交换条件并交换之后,得到的随机数的第四排列顺序r[3:0]为0011,相应的第二输出通道的排列顺序为cdab,以第二输出通道的排列顺序cdab为第二输出通道输出数据源的优先级顺序。在相邻的下一个周期中,随机数发生器重新生成随机数,再次取随机数的低四位r[3:0],将低四位与上一个周期中第二输出通道的排列顺序cdab进行一一映射,同理根据相同的排序算法对随机数及第二输出通道的排列顺序进行交换,以此类推,得到每个周期中第二输出通道输出数据源的优先级顺序。
[0022]
在其他实施例中,交换条件还可以是高位随机数小于低位随机数,也即将0全部右移。
[0023]
由于随机数发生器所生成的随机数为随机的,将生成的随机数与第二输入通道进
行一一映射,并将随机数按照排序算法进行排序之后得到的第二输出通道的顺序也是随机的,以第二输出通道的顺序为优先级顺序,因此该优先级为随机的优先级顺序。又由于随机排序模块的第二输出通道与仲裁器的第一输入通道级联,因此,输入仲裁器的数据源为随机的数据源。对于同一个第二输出通道,相邻周期之间的优先级没有依赖关系且是随机的优先级顺序,因此能够达到公平仲裁的目的。
[0024]
需要说明的是,优先级可以是按照第二输出通道的排列顺序的设置为升序,例如第二输出通道的排列顺序为cadb,则第二输出通道对应的优先级顺序按照cadb的顺序依次升高,b通道的优先级最高,c通道的优先级最低。在其他实施例中,优先级还可以是按照第二输出通道的排列顺序的设置为降序,优先级的高低可以根据需要进行灵活设置。
[0025]
优选的,在实际应用中,会包括上百个数据源,仲裁器的候选数据源越多,仲裁器实现的逻辑复杂度增加,则整体电路的速度变慢。为了提高仲裁器的仲裁速度,可以按照预设的数据量将数据源进行分组,分组的规则可以根据需要进行设定,对于随机排序模块中第二输入通道的数量n,将多个数据源分为n组,根据排序模块获取每组数据源的优先级,按照优先级的顺序将每组数据源送入相应的仲裁器进行仲裁;例如将100个数据源进行分组,预设的数据量为25,则按照连续的每25个数据为一组分为4组;其中,预设的数据量可以根据需要设定;在其他实施例中还可以采用其他的分组方式。或者按照数据源的排列顺序循环分配给相应的第二输入通道,也即第1-4个数据源依次分给4个第二输入通道,然后再将第5-8个数据源依次分给4个第二输入通道,以此类推;在输入随机排序模块之后,根据随机排序模块中的随机数随机输出。
[0026]
作为一个示例,数据源可以是cpu或者gpu的数据或者请求,以cpu为例,对于4输入4输出通道的随机排序模块,其数据源包括4个cpu,每个cpu都有独立的身份标识,在发送的数据包中包含相应cpu的身份标识,每个cpu会产生大量的数据包。每个cpu产生的数据包会按照一定的顺序发送给随机排序模块的任意一个第二输入通道。例如,对于cpu1、cpu2、cpu3和cpu4,由于随机排序模块的第二输入通道共享数据源,因此,任意一个第二输入通道都能够接收到cpu1、cpu2、cpu3和cpu4的数据包,并且接收到相应cpu的数据包的概率相同。
[0027]
综上所述,本发明实施例通过在仲裁器的输入通道和数据源之间增加随机排序模块,利用随机排序模块生成随机数,利用随机数与输入随机模块的数据源做一一映射,并通过排序算法移动随机数得到随机排序模块输出通道的优先级,该优先级为随机优先级,按照该优先级输出相应的数据源,由于优先级为随机的优先级,因此每个输出通道输出数据源的概率相同,又由于随机排序模块的输出通道为仲裁器的输入通道,因此仲裁器的输入通道输入数据源的概率相同,达到公平仲裁的目的。
[0028]
在经过随机排序模块对多个数据源进行优先级的排序之后输入仲裁器,由于目前仲裁器中各个输出通道之间相互独立,会出现在同一时钟周期下仲裁器同时授权两个或者两个以上输出通道输出相同数据源的指令,此时系统同时返回两个处理后的数据给同一个数据源会发生系统错误,基于此,本发明进一步提供了实施例二。
[0029]
实施例二
[0030]
请按参阅图2,实施例二提供了一种仲裁系统,所述仲裁系统包括:m个存储单元,随机排序模块p和仲裁器a;仲裁器a包括m个预处理模块和m个子仲裁器,m个子仲裁器按照仲裁优先级由高到低的顺序构成仲裁序列a={a1,a2,

,ai,

,am},ai为a中的第i个子仲裁
器,i的取值范围为1到m。优选的,子仲裁器为轮询仲裁器。
[0031]
进一步,m个存储单元共享多个数据源。可选的,数据源为cpu、gpu或者其他处理器。优选的,数据源为cpu。可选的,共享数据源的实现方式为通过总线共享数据源。可选的,存储单元为处理器的内存或者缓存。
[0032]
进一步,随机排序模块p包括m个输入通道和m个输出通道q={q1,q2,

,qj,

,qm},其中qj为第j个输出通道,每个输入通道连接一个存储单元,qj通过一个预处理模块yi连接子仲裁器ai,优先级高于ai的前i-1个子仲裁器的输出分别连接yi构成级联结构;其中,p的输出通道q的优先级顺序等于a中子仲裁器的仲裁优先级顺序。其中,随机排序模块p与实施例一中的随机排序模块相同,不再赘述。
[0033]
进一步,预处理模块yi根据级联结构获取优先级高于ai的i-1个子仲裁器的输出结果得到授权的数据源,并从qj的输出结果中将授权的数据源排除得到ai的输入。yi用于对优先级高于ai的所有子仲裁器授权的结果进行处理,排除已被授权的数据源,目的是为了达到在仲裁器a中所有子仲裁器的输出结果互斥的效果,也即按照优先级的顺序,已经被高优先级的子仲裁器授权的数据源不能再次被低优先级的子仲裁器授权,防止数据出错。
[0034]
具体的,实现从qj的输出结果中将授权的数据源排除的电路比较多。优选的,所述预处理模块yi包括i-1个反向输入端和一个连接qj的正向输入端,其中i-1个反向输入端与正向输入端分别作为与门电路的输入,与门电路的综合输出为yi的输出。
[0035]
优选的,所述预处理模块yi包括级联的i-1个子处理单元,每个子处理单元包括一个与优先级高于ai的仲裁器的输出连接的第一输入端、一个与上一级子处理单元的输出连接的第二输入端、一个与下一级子处理单元的输入连接的输出端;其中第一输入端的数据经过取反电路后与第二输入端的数据作为与门电路的输入,与门的输出为当前子处理单元的输出端。
[0036]
进一步,所述级联的i-1个子处理单元的级联顺序与仲裁器的顺序相同。也即优先级最高的仲裁器级联yi中的第一个子处理单元,优先级次高的仲裁器级联yi中的第二个子处理单元,以此类推。需要说明的是,级联顺序为数据流向,也即qj所输出的数据沿着电路向前传输所经过的第一个子处理单元,以此类推,在经过最后一个子处理单元之后数据流入当前输出通道所连接的子仲裁器。请参阅图2,以4输出通道为例,仲裁器包括4个仲裁优先级从高到低的子仲裁器{a1,a2,a3,a4},每个输出通道连接一个子仲裁器,每个子仲裁器的输入还连接有一个预处理模块,例如子仲裁器a4所连接的述预处理模块y4,y4包括级联的i-1个子处理单元为{y
4,1
,y
4,2
,

,y
4,k
,

,y
4,4
},y
4,k
为y4中的第k个子处理单元;其中,y
4,k
的第一输入端与第k个仲裁器ak的输出端连接。
[0037]
优选的,所述随机排序模块p所述随机排序模块用于生成随机数,其中所述随机数的位数与第二输出通道的数量相同,每一位随机数依次对应一个第二输出通道;根据排序算法移动随机数,在随机数移动时相应的移动第二输出通道的排列顺序,移动后的第二输出通道的顺序为数据源随机输出的优先级顺序;按照所述随机输出的优先级顺序将相应的数据源输出至所述仲裁器的输入通道进行仲裁。随机排序模块p获取输出通道优先级的方法与实施例一中的随机排序模块相同,不再赘述。
[0038]
综上所述,实施例二所提供的一种仲裁系统,通过将高优先级的所有子仲裁器的仲裁结果级联到下一级子仲裁器,将随机排序模块输出通道输出的结果中排除仲裁结果,
得到下一级子仲裁器的输入,以达到下一级仲裁器的仲裁结果中不可能出现已授权的数据源,也即达到仲裁器整体输出结果互斥,将仲裁器的不同输出通道授权给不同的数据源。同时结合随机排序模块随机生成的优先级,达到公平仲裁的目的。
[0039]
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0040]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0041]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献