一种基于amba总线的自适应实时加权优先仲裁方法及仲裁器的制作方法

文档序号:6385550阅读:376来源:国知局
专利名称:一种基于amba总线的自适应实时加权优先仲裁方法及仲裁器的制作方法
技术领域
本发明属于AMBA总线仲裁技术领域,涉及一种基于AMBA总线的自适应实时加权优先仲裁方法及仲裁器。
背景技术
随着半导体设计能力以及工艺制程的不断进步,在单一芯片上集成多种功能模块早已成为可能,SoC设计理念以及模块复用思想的提出,更是使大规模数字集成电路的设计有了质的飞跃。现在的SoC芯片,集成了多个处理器及运算单元,包括中央处理器、图像处理器、多媒体音频/视频编解码器以及多种功能的数字信号处理单元。在一个SoC系统中,决定系统性能的不再是单一处理器的运行速度,而主要取决于各个处理器单元之间的高效通信及其带宽的平衡分配。仲裁器负责处理各个处理器访问总线的优先级,协调多个处理器共享总线引起的竞争,保证总线资源合理、高效的分配,以使系统性能达到最优。AMBA 总线(Advanced Microcontroller Bus Architecture)是 ARM 公司提出的一种多级片上总线互联结构,AMBA-AHB总线规定了仲裁协议及仲裁器的接口,但协议中并没有规定仲裁器使用何种仲裁算法,因此仲裁器的仲裁算法设计具有很强的灵活性。

图1所示为基于AMBA总线的仲裁器的示意图。对AMBA总线的仲裁器示意图中部分重要信号及功能的详细说明如下HBUSREQx[15:0] :AHB总线主设备发出的请求访问总线的申请信号。每个总线主设备都会有一个输出到仲裁器的申请信号HBUSREQx,AHB总线系统最多支持多达16个独立的AHB总线主设备。HGRANTx[15:0]:授予信号是仲裁器的输出信号,表示最高优先级的主设备获得访问总线的授权。主设备在HGRANTx信号为高且HREADY有效的时钟HCLK上升沿获得总线授权。HMASTER[3:0]:仲裁器使用HMASTER[3:0]信号表示获得总线授权的主设备编号,该信号还用来控制中央地址译码器和控制信号多路选择器。当有从设备申请进行一次SPLIT传输时,应该记录当前主设备编号HMASTER,以使从设备恢复传输时能够告知仲裁器授予相应主设备总线使用权。HLOCKx [15:0]:主设备在发起一次锁定传输时,与请求信号一起声明的锁定传输信号。锁定传输信号提不仲裁器主设备正在执行一系列不可分割的传输。一旦锁定传输开始,在本次传输结束之前,仲裁器不能将总线控制权授予其他主设备。HMASTERLOCK :仲裁器通过声明HMASTERLOCK信号来表明当前传输是一次锁定传输,该信号具有和地址以及控制信号相同的时序。HRESP[1:O] =HRESP是从设备传输响应信号,在传输进行阶段如果从设备认为传输的执行将占用大量的时钟周期时,从设备可以发出一个SPLIT响应。该信号提示仲裁器当前进行传输的主设备不应该继续占用总线,直到从设备做好完成这次传输的准备发出SPLIT申请,先前的主设备将再次获得总线并完成数据传输。HSPLITx [16:0]:当从设备能够完成一次SPLIT传输时,将声明HSPLITx [15:0]所对应位,以便通知仲裁器赋予相应主设备总线授权以完成传输。由于AMBA总线规范没有规定总线仲裁算法,因此设计者可以根据需要自由的进行算法的选择和修改。但不论哪一种算法,都应该满足以下四个基本要求:(I)每一时刻只能有一个主设备占用总线;(2) 一次完整传输不允许被打断;(3)先请求的主设备应该首先得到响应,当同一时刻有多个主设备发出请求时,应该按照仲裁算法的优先级次序进行响应。(4)仲裁算法应该保证“公平”,保证每个主设备都可以在一定的时间内获得总线。比较常见的仲裁算法主要包括固定优先级算法、轮转优先级算法、基于固定优先级和轮转优先级的混合优先级算 法以及加权优先循环算法等。A.固定优先级算法:所谓固定优先级算法是指每个主设备访问共享总线的优先级是固定的,重要性高的主设备相应的要保证高的优先级,这种算法虽然保证了主设备的运行速度,但是其缺点也很明显,就是当高优先级主设备长期占用总线时,低优先级的主设备等待时间会很长,缺乏公平性。B.轮转优先级算法:轮转优先级算法是指主设备的优先级会随着主设备占用总线而变化,当一个主设备占用总线后,它的优先级随即变为最低从而使其他低优先级主设备有机会获得总线。这种算法 保证了公平性,由于这种算法过于平均,使得每个主设备访问总线的带宽几乎一样,而当主设备需要更大的带宽进行多次实时数据传输时,会由于优先级的降低而增加访问延迟,降低数据传输效率。C.混合优先级算法:混合优先级算法是指将固定优先级算法和轮转优先级算法相结合,通常给主设备A赋予最高的优先权,其他主设备仍旧采用轮转优先级算法。虽然这种算法在一些特定的情况下能够适应系统各主设备对共享总线的带宽需求,但是由于周边主设备仍旧采用的是轮转优先级算法,因此并不能从根本上解决对各总线主设备合理分配总线带宽的问题。D.加权优先循环算法:加权优先循环算法是指根据主设备的不同需求分配给其不同的加权因子,从而决定不同主设备访问总线的优先级别,而这个加权因子也决定了在一次循环中各主设备访问总线的次数Ci,其原理如下:假设系统中有η个主设备,每个主设备
η
的初始加权因子为Wi,其中W..>W1...>Wn,则加权因子之和为
权利要求
1.一种基于AMBA总线的自适应实时加权优先仲裁方法,其特征在于,包括以下操作: 在一次完整循环的初始阶段,各主设备的加权因子复位,各个主设备的加权因子为Wi,Wi也决定了一次循环中每个主设备最多得到总线的次数Ci, Wi=Ci ; 在一次循环中,各主设备的优先级高低由加权因子决定,加权因子越大的主设备优先级越高;各个主设备的优先级在每一次发生总线仲裁后重新进行排序,当一个主设备得到一次总线授权后,其相应的加权因子递减1,伴随着加权因子的减小,各主设备的优先级实时地发生变化,以新的优先级顺序作为下一次仲裁的依据;当某一个主设备的加权因子减小到O后,各个主设备的加权因子会重新复位,开始下一轮循环。
2.如权利要求1所述的基于AMBA总线的自适应实时加权优先仲裁方法,其特征在于,若一个主设备得到一次总线授权后,其相应的加权因子递减I之后与其他主设备的加权因子相等时,之前被总线授权的主设备的优先级大于其他主设备。
3.如权利要求1所述的基于AMBA总线的自适应实时加权优先仲裁方法,其特征在于,设各个主设备的加权因子W..>w1...>wn,则加权因子之和为w.
4.如权利要求1所述的基于AMBA总线的自适应实时加权优先仲裁方法,其特征在于,所述的各主设备的加权因子的产生为: 主设备传输计数模块对一定时间内各主设备的传输次数进行统计,当任何一个主设备的传输次数达到预设值时,对此段时间内各主设备发送数据次数进行寄存,得到各主设备的传输数据值tranSX_count,并将该值发送给加权因子基础值产生模块;加权因子基础值产生模块根据tranSX_count值得到各主设备的加权因子基础值Dl ; 与此同时,主设备等待计数模块对各主设备的等待时间进行记录,当任何一个主设备的等待时间所经历的HCLK周期达到预设值时,对各个主设备的等待时间计数器值waitX_count进行寄存,并将该值发送给加权因子修正值产生模块;加权因子修正值产生模块根据waitX_count值得到加权因子修正值D2 ; 主设备等待计数模块同时负责产生各主设备新的加权因子值,当任何一个主设备的等待时间达到预设值时,主设备等待计数模块发出sample_data信号;同时将加权因子基础值D1、加权因子修正值D2相加取平均值,将结果与当前各主设备加权因子相加,并且再次取平均值,得到下一阶段的各主设备加权因子值。
5.一种基于AMBA总线的自适应实时加权优先仲裁器,其特征在于,包括: 权重位产生模块,该模块通过对总线上各主设备的传输数据的数量和等待时间进行监视,对各主设备的传输需求进行预测,产生各主设备的初始加权因子并将其发送给优先级产生模块; 优先级产生模块,该模块接收权重位产生模块传送过来的各主设备的初始加权因子,以此作为一次循环中各主设备访问次数的初始值;在一次循环中每一次发生总线仲裁,对相应得到总线的主设备的加权因子值进行减I操作,伴随着加权因子的变化,主设备优先级排序也实时发生变化,新的主设备优先级排序将作为仲裁时总线授权的依据,并实时地获得发出总线申请并且具有最高优先级的主设备编号;当各主设备的加权因子中有减小为O的值时,加权因子重新赋值,开始下一次循环; 总线移交判定模块,该模块对总线的控制信号、锁定传输标志以及分块传输控制模块信号进行检测,当控制信号达到总线移交的标准时,总线移交判断模块的输出控制信号有效,发出仲裁许可信号;仲裁信号输出模块接收到输出控制信号有效后,完成一次总线的仲裁和移交; 锁定传输模块,锁定块传输控制模块用来处理主设备的锁定传输申请,当主设备在申请总线的同时声明HL0CK_M[15:0]信号的相应位时,则主设备发起的是一次锁定传输;锁定传输模块确保发起锁定传输的主设备在获得总线后没有其他的主设备被授予总线直至传输结束;当锁定传输结束前,如果从设备发出SPLIT响应,则此时总线主设备将授权给虚拟主设备; 仲裁信号输出模块,该模块在接到总线移交判定模块发出的输出控制信号有效信号后,对优先级产生模块生成的主设备编号进行寄存和译码,并对该主设备所对应HGRANT_M[15:0]信号的相应位进行声明;同时,仲裁信号输出模块还对被授予的主设备编号HMASTER进行输出,表明哪个主设备正在占用总线并进行一次传输;仲裁信号中的锁定传输信号HMASTERLOCK由锁定传输控制模块得到。
6.如权利要求5所述的基于AMBA总线的自适应实时加权优先仲裁器,其特征在于,所述的权重位产生模块包括主设备传输计数模块、基础值产生模块、主设备等待计数模块和修正值产生模块; 各主设备的权重位产生为: 系统复位后,各主设备的加权因子值为预设值,此时各主设备的加权因子相等; 主设备传输计数模块和主设备等待计数模块分别对主设备的数据传输量和等待时间进行统计;当确认主设备进行了一次数据的发送时,相应主设备的传输计数值tranS_count加I ;当确认主设备正在申请一次总线,但并未得到总线授权,主设备处于等待状态,相应主设备的等待时间计数值weight_count加I ; 各主设备的发送数据计数值和等待时间计数值分别和各自的内部比较值比较,当任何一个主设备的数据传输计数器值与预设比较值相同时,对此刻所有主设备的传输数据计数值trans_count进行寄存,同时对各个计数器值进行清零,准备下一轮计数;当任何一个主设备等待时间计数值与预设比较值相等时,对各主设备的计数值wait_Count进行寄存,并将计数器值清零; 对于采样得到的各主设备数据传输计数器值trans_count和等待时间计数器值wait_count,分别输入到基础值产生模块和修正值产生模块,得到各主设备的4bit 二进制加权因子的基础值Dl和修正值D2 ; 基础值Dl的产生为:对各个主设备的传输计数值进行排序,如果两个主设备的计数值相等,则根据各个主设备的接口顺序进行排列并赋值,给传输计数值最大的主设备赋值为特定值,其余主设备按照顺序递减; 修正值D2的产生为:对各主设备等待时间计数值进行比较,对于计数值达到预设值的主设备,将其修正值赋值为特定值,其余主设备的修正值均为O ; 将各个主设备的加权因子基础值Dl和修正值D2相加,对得到的结果取平均值,得到SI,这个结果与当前各主设备的加权因子值再次相加取平均值,得到S2 ; 当等待时间计数器与内部 预设值相等时,发出sample_data信号,对S2值进行采样,从而得到下一个阶段各个主设备的加权因子值。
7.如权利要求5所述的基于AMBA总线的自适应实时加权优先仲裁器,其特征在于,所述的优先级产生模块包括掩膜模块、最高优先级主设备判定模块、分块主设备产生模块以及主设备选择控制模块; 掩膜模块,该模块对各从设备发出的应答信号HRESP和从设备的分块传输请求信号HSPLIT进行检测,当从设备不能立刻响应主设备的传输请求,应答信号HRESP为SPLIT响应时,表示尝试这次传输的总线主设备不应该被授予总线,掩膜模块记录此时占用总线的主设备编号,并对相应的主设备申请进行屏蔽,从而使其他低优先级的主设备占用总线;当发出SPLIT响应的从设备确定能够完成传输,掩膜模块在接到此信号的同时,解除对相应主设备的屏蔽,以使总线能够及时授予相应的主设备以重试传输; 最高优先级主设备判定模块,该模块对各主设备的优先级进行排序,得到申请总线的最高优先级主设备的编号;最高优先级主设备产生为: 对权重位产生模块传输来的各个主设备的权重值masterX_weight_value进行寄存,作为加权因子计数值count_x的初始值,同时对总线上各主设备的传输状态进行监测,在一次循环中,各主设备的加权因子以寄存的masterX_weight_value为基础进行递减,优先级排序逻辑对各主设备的加权因子计数值进行比较,实时得到各个主设备的优先级排序;当某个主设备进行一次总线传输后,其相应的加权因子计数值(30111^_1减I ;最高优先级产生逻辑根据此排序以及各主设备的申请,得到此刻申请总线且具有最高优先级的主设备编号 alg_next_master ; 当任何一个主设备的加权因子计数值count_X为O时,主设备选择控制模块将重新载入各个主设备的权重值masterX_weight_value,作为加权因子计数值的初始值,并开始下一轮判定; 分块主设备产生模 块,当有从设备声明HSPLIT[15:0]的相应位以发起一次分块传输时,分块主设备产生模块根据此刻各主设备的优先级排序,将申请分块传输的各主设备中具有最高优先级的主设备编号most_sig_hsplit送入主设备选择控制模块; 主设备选择控制模块,该模块对总线申请以及锁定和分块传输信号进行检测,得到不同的控制信号,输出next_master主设备编号。
8.如权利要求5所述的基于AMBA总线的自适应实时加权优先仲裁器,其特征在于,所述的总线移交判定模块在以下几种情况下将发起一次总线仲裁: O当总线从设备请求一次分块传输,并且当前主设备没有进行一次锁定传输时,总线移交判定模块使输出控制信号require_arbiter有效,进而完成一次总线的仲裁; 2)当从设备没有发出分块传输请求,并且当前主设备的传输不是锁定传输时,有: a、当前主设备没有传输数据时,总线移交判定模块使require_arbiter信号有效,实现一次总线的仲裁; b、当前主设备正在进行一次非连续单一突发传输,则此时总线移交判定模块可发起一次仲裁,总线仲裁允许信号require_arbiter=l’ bl ; C、当前主设备在进行4拍增量突发或者4拍回环突发的最后一个数据传输周期,总线移交判定模块可发起一次仲裁,总线仲裁允许信号require_arbiter=l’ bl ; d、当前主设备在进行8拍增量突发或者8拍回环突发的最后一个数据传输周期,总线移交判定模块可发起一次仲裁,总线仲裁允许信号require_arbiter=l’ bl ;e、当主设备进行一次不定长突发传输时,是否发起一次总线仲裁,由当前占用总线的主设备决定;当主设备在传输数据的同时继续发出总线申请信号时,总线移交判定模块不发出总线仲裁允许信号;当主设备在传输数据的同时没有发出总线申请信号,此时总线移交判定模块发出总线仲裁允许信号。
9.如权利要求5所述的基于AMBA总线的自适应实时加权优先仲裁器,其特征在于,所述的锁定块传输控制模块同时还对HMASTERLOCK信号进行声明,以表不一次锁定传输,HMASTERLOCK信号属于仲裁信号的一部分。
10.如权利要求5所述的基于AMBA总线的自适应实时加权优先仲裁器,其特征在于,所述的自适应实时加权优先仲裁器接收主机的总线申请信号HBUSREQ[15:0]及锁定传输信号HLOCK[15:0],输出仲裁信号;MUX1通过对仲裁器输出信号HMASTER进行译码,将获得授权的主设备发出的控制信号、地址信号以及数据信号输出到总线上,监视模块对各个主机的发送时间和总线授权时间 进行记录。
全文摘要
本发明公开了一种基于AMBA总线的自适应实时加权优先仲裁方法及仲裁器,在一次循环中,各主设备的优先级高低由加权因子决定,加权因子越大的主设备优先级越高;各个主设备的优先级在每一次发生总线仲裁后重新进行排序,当一个主设备得到一次总线授权后,其相应的加权因子递减1,伴随着加权因子的减小,各主设备的优先级实时地发生变化,以新的优先级顺序作为下一次仲裁的依据;当某一个主设备的加权因子减小到0后,各个主设备的加权因子会重新复位,开始下一轮循环。改善了加权优先循环算法在一次循环中低优先级主设备等待时间过长的缺陷,同时解决由于加权因子固定而使各主设备所分配的总线带宽无法根据系统功能的变化而实时变化的问题。
文档编号G06F13/38GK103077141SQ201210575069
公开日2013年5月1日 申请日期2012年12月26日 优先权日2012年12月26日
发明者王少峰, 耿莉, 钞朝燕, 陈镭铖, 赵慧 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1