综合仲裁器装置
【技术领域】
本发明涉及一种仲裁装置,特别是指使用多种仲裁算法硬件在总线上实现多种仲裁策略的装置。
【背景技术】
现有的仲裁器是基于可能出现的多个输入请求和一个输出响应选择的实现。如果输入请求只有一个,则输出响应必定是对应输入,如果有多个输入请求(input_req)同时存在,则输出响应(output_grant)的选择是依赖于某种算法函数得到的,即output_grant=arbiter(input_req)。在一般仲裁器里,往往都只使用单一仲裁算法,因此难以完成在真实系统中的各种变化需求。
【发明内容】
本发明的目的在于提供一种综合仲裁器装置,用以解决现有技术的仲裁器中只有单一的仲裁算法而无法满足在真实系统中的各种变化需求的问题。
为实现上述目的,实施本发明的综合仲裁器装置至少包括多路复用单元、多个仲裁算法单元、解复用单元及动态配置单元,其中多个仲裁算法单元连接于多路复用单元与解复用单元之间,并且动态配置单元与多路复用单元、多个仲裁算法单元及解复用单元连接用以控制各个单元的工作,多路复用单元接收外部的输入请求进行复用,动态配置单元根据预设的仲裁策略将输入请求发送到不同的仲裁算法单元进行处理,之后将处理结果输出至解复用单元输出对应的响应。
依据上述主要特征,该综合仲裁器装置包括固定优先权仲裁算法单元、权重循环仲裁算法单元、先进先服务仲裁算法单元、随机存取仲裁算法单元和内容相关仲裁算法单元,这些仲裁算法单元并行连接在多路复用单元与解复用单元之间。
依据上述主要特征,对于同时存在有多个输入的请求,该综合仲裁器装置按照单向轮询权重最大的顺序决定输出响应,其中权重是变化的。
依据上述主要特征,如果每个请求的权重始终相等,则输出响应依赖于请求来临的先后顺序,特别地,如果有多个请求在同一个时钟周期来临,则依赖于物理电连接顺序,序号最低的固定得到最先响应。
依据上述主要特征,对于所有未处理的输入请求,该综合仲裁器装置将这些所有未处理的输入请求先放在先入先出队列中,并从队列输出端按照先进先处理的顺序决定输出响应。
依据上述主要特征,对于所有输入请求都先输入一个随机数生成器,得到一个随机数,得到最大随机数的输入请求最先得到输出响应。
依据上述主要特征,对于所有输入请求,该综合仲裁器装置根据其内容进行分析,相关系数最大的输入请求将最先得到输出响应。
依据上述主要特征,对于常见的一些数据类型,综合仲裁器装置在系统设计时,确定每个输入请求的类型,并输入至对应的仲裁算法单元。
依据上述主要特征,多路复用单元根据输入请求的数据的特征自动判断输入请求的类型,并输入至对应的仲裁算法单元。
依据上述主要特征,动态配置单元中预设的仲裁策略可动态改变。
与现有技术相比较,实施本发明的综合仲裁器装置仅使用通用逻辑硬件即可实现多种仲裁算法,硬件结构易于实现。同时,通过将多种仲裁算法单元组合使用,而且组合策略也是可以通过软件编程,即变化动态配置单元的仲裁策略实现,因此使用起来也较具弹性及多样化选择,可以满足嵌入式系统复杂应用的需要。
【附图说明】
图1为实施本发明综合仲裁器装置的硬件原理示意图。
图2为实施本发明综合仲裁器装置的第一实施例的应用示意图。
图3为实施本发明综合仲裁器装置的第二实施例的应用示意图。
【具体实施方式】
请参阅图1所示,实施本发明的综合仲裁器装置至少包括多路复用单元(MUX)、多个仲裁算法单元、解复用单元(DE-MUX)及动态配置单元,其中多个仲裁算法单元连接于多路复用单元与解复用单元之间,并且动态配置单元与多路复用单元、多个仲裁算法单元及解复用单元连接用以控制各个单元的工作,多路复用单元接收外部的输入请求(如图1所示的req0,req1……req5)并进行复用,动态配置单元根据预设的仲裁策略将输入请求发送到多个仲裁算法单元进行处理,之后将处理结果输出至解复用单元输出对应的响应(如图1所示的grant0,grant1……grant5)。
实施本发明的综合仲裁器装置使用的多个仲裁算法单元包括:固定优先权仲裁算法单元(Fixed-Priority,简称FP)、权重平均循环仲裁算法单元(Weight Round-Robin,简称WRR)、先进先服务仲裁算法单元(First ComeFirst Service,简称FCFS)、随机存取仲裁算法单元(Random-Access,简称RA)、内容相关仲裁算法单元(Context Relation,简称CR)。本发明通过将这五种仲裁算法单元混合使用,构成本发明综合仲裁器装置的基本架构。
在具体实施时,该综合仲裁器装置使用的上述固定优先权仲裁算法单元、权重循环仲裁算法单元、先进先服务仲裁算法单元、随机存取仲裁算法单元和内容相关仲裁算法单元并行连接在多路复用单元与解复用单元之间。或者这些仲裁算法单元级联,每个仲裁算法单元的输出端与后一级仲裁算法单元的输入端连接。或者,这些仲裁算法单元也可以采用部分并联、部分串联的方式级联,具体的级联方式可依该综合仲裁器装置实现的功能进行改变。
对于同时存在有多个输入的请求,该综合仲裁器装置按照单向轮询权重最大的顺序决定输出响应,其中权重是变化的。如果每个请求的权重始终相等,则构成平均循环的特殊情况,此时输出响应依赖于请求来临的先后顺序,特别地,如果有多个请求在同一个时钟周期来临,则依赖于物理电连接顺序,序号最低的固定得到最先响应。
对于所有未处理的输入请求,该综合仲裁器装置将这些所有未处理的输入请求先放在先入先出队列中,并从队列输出端按照先进先处理的顺序决定输出响应。
选择性地,对于所有输入请求都先输入一个随机数生成器,得到一个随机数,得到最大随机数的输入请求最先得到输出响应。
选择性地,对于所有输入请求,该综合仲裁器装置根据其内容进行分析,相关系数最大的输入请求最先得到输出响应。
对于实施本发明的综合仲裁器装置的应用,以下举例进行说明。
例如对于视频数据,带宽要求大,通常为逐块逐段的操作,其间往往有规律的间断,有需求时不能有太多延时;对于音频数据,总带宽要求不高,但是数据可能连续不断地少量到来,每个数据的延时要求都比较小,实时性要求高;对于存储数据,数据总量多,虽然对传输总时间有要求,但是每个时刻的数据传送率可以有所波动,最好能见缝插针;对于处理器指令数据,通常开始时可以是最低优先级,但是随着时间推移,优先级会不断变高,必须立即响应。因此对应以上4种数据的仲裁策略可以依次为:内容相关、固定优先、随机存取和权重循环。对于上述的四种数据类型(视频/音频/存储/指令),在系统设计时,可以确定每个输入请求是何种类型。或者,也可由多路复用单元(MUX)根据数据的特征判断输入请求的类型。之后由动态配置单元根据上述预设的策略而通过多路复用单元(MUX)将输入请求输出到不同的仲裁算法单元,在仲裁算法单元进行仲裁判断后,再通过解复用单元(DE-MUX)进行输出,其中解复用单元(DE-MUX)的输出顺序与多路复用单元(MUX)输入的顺序相对应。在本实施例中,多路复用单元通过对输入信号分析得到选通控制信号,把多个输入请求选择其中之一送到后续的唯一输出去,其可以利用一个物理仲裁单元同时处理多个输入请求,以而提高信道利用率,可以传输多个不同来源的信息。而解复用单元是针对一个信号输入,通过选通控制信号,把它分派到多个输出中特定的某一个输出,其通常和多路复用单元配合使用,可以得到比较复杂的单向路由网络。
如图2所示,为实施本发明综合仲裁器装置的第一实施例的应用示意图,图2所示为本发明综合仲裁器装置应用于USB盘的情形,在硬件的连接中,每个外设(如MP3、USB、MCU)的输入请求req都可以和任意仲裁算法单元连接,但是通过软件配置(即通过动态配置单元改变仲裁策略),实际路由通道是MP3作为Audio数据,对应的输入请求总是送给FCFS仲裁算法单元(如实线所示),而USB和MCU都总是送给WRR仲裁算法单元作仲裁判断(如实线所示),对应地,MCU的优先级开始比较低,让USB尽量多传数据,但是如果USB数据很多,MCU一直没有得到回应,则MCU的优先级会越来越高,直到WRR仲裁算法单元在逐次轮询中响应MCU的请求。
对应宏观表现是音频MP3数据是稳定地不受打扰地传送,而少量USB数据会很快传完,大量的U盘数据会比理论值下降更多,在实际应用中,这样的用户体验更自然。
请参阅图3所示,为实施本发明综合仲裁器装置的第二实施例的应用示意图,图3所示为本发明综合仲裁器装置应用于强调MCU性能的单片机中的情形,此种情况下,通过软件配置(即通过动态配置单元改变仲裁策略),MCU是独占地送给WRR仲裁算法单元作仲裁判断,不受USB影响,如此更加稳定,相对而言,USB与MP3都总是送给FCFS仲裁算法单元作仲裁判断,并且会被MP3打断,性能不再突出。
由上述的叙述可知,实施本发明综合仲裁器装置在各种输入请求、多路复用单元、仲裁算法单元及解复用单元等功能模块在硬件设计完成后,还可以针对不同的应用场合用软件重新配置仲裁策略,得到侧重点不同的产品,从而更能满足设计的弹性需要。同时,由于修改硬件设计代价巨大,而软件编程控制相对灵活,从而更能满足片上嵌入式系统的要求。
可以理解的是,对本领域普通技术人员来说,可以根据本发明的技术方案及其发明构思加以等同替换或改变,而所有这些改变或替换都应属于本发明所附的权利要求的保护范围。