一种SoC资源仲裁方法和装置与流程

文档序号:12622369阅读:312来源:国知局
一种SoC资源仲裁方法和装置与流程

本发明涉及多业务并发操作技术领域,尤指一种SoC资源仲裁方法和装置。



背景技术:

随技术的发展,芯片的集成度越来越高,对于片上系统(SoC,System-on-a-Chip)的要求也越来越高。目前主流的通讯SoC芯片均包含了多种网络之间互连的协议(IP,Internet Protocol),多模多制式的SoC通讯芯片成为系统的标配。由于需要同时处理多个系统,而芯片中的资源毕竟是有限的,因此共用资源的抢占及分配变得尤为关键。典型的例子包括:SoC中的中央处理器(CPU,Central Processing Unit)/(DSP,Digital Signal Processing)处理资源的分配,总线资源的分配,直接内存访问(DMA,Direct Memory Access)资源的分配,内存的分配等多种共用资源的分配及仲裁,如何能够有效地处理类似问题,确保多业务并行处理时的各业务均有必需的服务质量(QoS,Quality of Service),使得SoC芯片在多业务并行操作时的整体指标优化成为一直在研究的问题。

目前在SoC设计中,主要采用的是基于硬件的仲裁方案,这类方案往往是由硬件根据业务中优先级进行仲裁,通常设计较为简单,导致灵活性差,而且并无自适应机制,无法对多业务的QoS性能进行动态的检测、评估和调整。



技术实现要素:

为了解决上述技术问题,本发明提供了一种SoC资源仲裁方法和装置,能够实现在多业务并发操作时,自适应的对各业务需求进行动态调度及资源仲裁。

为了达到本发明目的,本发明提供了一种SoC资源仲裁方法,包括:预 先设置业务的默认优先级指数;从QoS帧中获取业务的QoS需求信息,形成业务的实时QoS指数;根据所述业务的默认优先级指数和所述业务的实时QoS指数,生成业务加权后的判决指数;根据所述业务加权后的判决指数进行SoC资源的分配。

进一步地,所述预先设置业务的默认优先级指数,包括:根据业务的性质,预先设置业务的默认优先级指数,形成业务的默认优先级指数集合Dn={d1,d2….dn}。

进一步地,所述QoS帧结构包括命令控制字Control、调整策略Strategy和调整策略内容Content,其中,Control字段定义了帧格式;Strategy字段定义了调整策略分别为调整阶数和QoS指数;Content字段定义了Strategy字段的内容。

进一步地,所述从QoS帧中获取业务的QoS需求信息,形成业务的实时QoS指数,包括:如果所述QoS帧的Content字段为调整阶段为调整阶数时,则从业务的接收端发送的QoS帧中获取到业务的QoS需求信息,所述QoS需求信息包括业务的调整阶数qn;如果所述QoS帧的Content字段为调整阶段为QoS指数时,则从业务的接收端发送的QoS帧中获取到业务的QoS需求信息,所述QoS需求信息包括业务的QoS指数,根据QoS指数进行调整阶数的映射,得到业务的调整阶数qn;根据所述业务的调整阶数,形成业务的实时QoS指数集合Qn={q1,q2….qn}。

进一步地,所述根据所述业务的默认优先级指数和所述业务的实时QoS指数,生成业务加权后的判决指数,包括:将所述业务的默认优先级指数Dn={d1,d2….dn}和所述业务的实时QoS指数Qn={q1,q2….qn}进行相加的矢量运算,生成业务加权后的判决指数Fn={f1,f2….fn}。

进一步地,所述根据所述业务加权后的判决指数进行SoC资源的分配,包括:根据所述业务加权后的判决指数,对业务资源请求进行仲裁,将SoC资源判决给判决指数最高Max(Fn)的业务。

进一步地,所述方法还包括:预先建立资源请求队列;将接收到的业务根据所述业务加权后的判决指数在所述资源请求队列中进行缓存。

本发明还提供了一种SoC资源仲裁装置,包括:

进一步地,设置模块,用于预先设置业务的默认优先级指数;QoS指标及调整模块,用于从QoS帧中获取业务的QoS需求信息,形成业务的实时QoS指数;QoS整型器,用于根据所述业务的默认优先级指数和所述业务的实时QoS指数,生成业务加权后的判决指数;资源仲裁器,用于根据所述业务加权后的判决指数进行SoC资源的分配。

进一步地,所述设置模块,具体用于:根据业务的性质,预先设置业务的默认优先级指数,形成业务的默认优先级指数集合Dn={d1,d2….dn}。

进一步地,所述QoS帧结构包括命令控制字Control、调整策略Strategy和调整策略内容Content,其中,Control字段定义了帧格式;Strategy字段定义了调整策略分别为调整阶数和QoS指数;Content字段定义了Strategy字段的内容。

进一步地,所述QoS指标及调整模块,具体用于:如果所述QoS帧的Content字段为调整阶段为调整阶数时,则从业务的接收端发送的QoS帧中获取到业务的QoS需求信息,所述QoS需求信息包括业务的调整阶数qn;如果所述QoS帧的Content字段为调整阶段为QoS指数时,则从业务的接收端发送的QoS帧中获取到业务的QoS需求信息,所述QoS需求信息包括业务的QoS指数,根据QoS指数进行调整阶数的映射,得到业务的调整阶数qn;根据所述业务的调整阶数,形成业务的实时QoS指数集合Qn={q1,q2….qn}。

进一步地,所述QoS整型器,具体用于:将所述业务的默认优先级指数Dn={d1,d2….dn}和所述业务的实时QoS指数Qn={q1,q2….qn}进行相加的矢量运算,生成业务加权后的判决指数Fn={f1,f2….fn}。

进一步地,所述资源仲裁器,具体用于:根据所述业务加权后的判决指数,对业务资源请求进行仲裁,将SoC资源判决给所述业务加权后的判决指数最高Max(Fn)的业务。

进一步地,所述装置还包括:缓冲模块,用于预先建立资源请求队列,将接收到的业务根据所述业务加权后的判决指数在所述资源请求队列中进行缓存。

与现有技术相比,本发明包括预先设置业务的默认优先级指数;从QoS 帧中获取业务的QoS需求信息,形成业务的实时QoS指数;根据所述业务的默认优先级指数和所述业务的实时QoS指数,生成业务加权后的判决指数;根据所述业务加权后的判决指数进行SoC资源的分配。本发明通过定义QoS帧并嵌入到各业务的帧格式中,从而可以将QoS指标及调整需求进行实时传递;定义不同的调整策略,当处于调整阶段时,由对端发起,当处于QoS指标阶段时,由本地调整;根据业务的默认优先级指数和业务的实时QoS指数生成业务加权后的判决指数,将SoC资源判决给判决指数最高的业务,从而能够最大程度地利用QoS指标的变化,动态地对系统内资源进行仲裁,达到优化QoS的目的。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1是本发明的一种实施例中SoC资源仲裁方法的流程示意图。

图2是本发明的一种实施例中SoC资源仲裁装置的结构示意图。

图3是本发明的一种实施例中QoS动态调整的曲线示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

通常在复杂SoC的内部,有多个业务并行操作的需求,典型的场景包括: WiFi(Wireless Fidelity)、蓝牙(BlueTooth)、长期演进(LTE,Long Term Evolution)、全球定位系统(GPS,Global Positioning System)等多个业务同时开启,或者语音、图像、数据等业务的共存场景。不同业务本身所需要的QoS会有一定的要求,且QoS本身可能是多种指标:如带宽,延时,丢包率,拥堵率等。现有技术往往基于硬件及根据业务的属性设定固定的优先级,从而使高优先级的业务优先处理。

本发明提供的SoC资源仲裁方法和装置,能够自适应的对各业务需求进行动态调度及资源仲裁。

如图1所示,本发明提供了一种SoC资源仲裁方法,包括:

步骤101,预先设置业务的默认优先级指数。

在本步骤中,根据业务的性质,预先设置业务的默认优先级指数,例如第n种业务的默认优先级指数记为dn,如此,形成业务的默认优先级指数集合Dn={d1,d2….dn},dn的设定由系统设计者确认,在此不赘述。

步骤102,从QoS帧中获取业务的QoS需求信息,形成业务的实时QoS指数。

相对于现有技术,在本发明中定义了一种QoS帧结构,该QoS帧可以嵌入到各业务的帧格式中,由上层解释,或者直接由硬件解析。

如表1所示的QoS帧结构,包括命令控制字(Control),调整策略(Strategy)和调整策略内容(Content)。

表1

根据表1,Control字段定义了帧格式,分别为00控制帧,01数据帧,10QoS帧;此外,还包括了一个11保留位Reserved;

Strategy字段定义了调整策略,分别为0:调整阶数和1:QoS指数(QoS_Index);

Content字段为Strategy字段中调整策略的具体内容:

当Content字段为When Strategy=0,则表示调整策略处于调整阶段。

此时,调整的需求由业务的接收端发起,具体地,业务的接收端根据其QoS状态发出QoS帧,本地(QoS帧的接收端)从该QoS帧中获取业务的QoS需求信息,该QoS需求信息中包括业务的调整阶数qx(x=1~n);该qx(x=1~n)指数为各业务的QoS指数经过映射得到,qx=Function(Index_a,Index_b,…Index_m),映射关系Function()的设定由系统设计者确认,在此不赘述。

此外,在QoS帧中的QoS需求信息中还可以包含表示上调或下调的阶数,从而提供粗调和精调的控制,例如对于数据业务,其可能的Index_a/b/..m为误码率,延时,吞吐率等,定义1-31为向上调整的阶数,-1~-31为向下调整的阶数,调整的时候,可以每次以+1or-1进行精调,也可以每次+4or-4进行粗调。

当Content字段为When Strategy=1,则表示调整策略为QoS指数阶段。

此时,业务的接收端并不发起调整需求,只是将目前的QoS指数发出,由本地决定调整策略,即业务的接收端发出QoS帧,本地从该QoS帧中获取业务的QoS需求信息,该QoS需求信息中包括业务的QoS指数,由本地来决定调整控制,具体地,本地根据获取到的QoS指数,进行QoS指数到调整阶数的映射,从而调整qn值,完成优先级的重排和仲裁任务,其中QoS指数到调整阶数的映射如前所述qx=Function(Index_a,Index_b,…Index_m),映射关系Function()的设定由系统设计者确认,在此不赘述。

在本步骤中,接收来自业务的接收端的QoS帧,并从该QoS帧中获取业务的QoS需求信息;如果QoS帧中的Content字段为When Strategy=0,则可以从该QoS帧中直接获取到业务的调整阶数qx(x=1~n);如果QoS帧中的Content字段为When Strategy=1,则从该QoS帧中获取到业务的QoS指数,根据QoS指数进行调整阶数的映射,得到业务的调整阶数qx(x=1~n);如此,可以根据业务的调整阶数,得到业务的实时QoS指数集合Qn={q1, q2….qn}。

步骤103,根据业务的默认优先级指数和业务的实时QoS指数,生成业务加权后的判决指数。

在本步骤中,将业务的默认优先级指数Dn={d1,d2….dn}和业务的实时QoS指数Qn={q1,q2….qn}进行相加的矢量运算,生成业务加权后的判决指数Fn={f1,f2….fn},即Fn=Dn+Qn。

步骤104,根据业务加权后的判决指数进行SoC资源的分配。

在本步骤中,根据业务加权后的判决指数,对各业务资源请求进行仲裁,将SoC资源判决给判决指数最高的业务,即Max(Fn)业务,从而使得该业务的QoS得到一定的提升。

此外在本步骤中,还包括建立资源请求队列,将业务根据判决指数进行缓存。

图2是本发明的SoC资源仲裁装置,包括:

设置模块(未图示),用于预先设置业务的默认优先级指数。

具体地,根据业务的性质,预先设置业务的默认优先级指数,得到业务的默认优先级指数集合Dn={d1,d2….dn}。

QoS指标及调整模块,用于从QoS帧中获取业务的QoS需求信息,形成业务的实时QoS指数。

具体地,根据接收到的QoS帧,获取业务的QoS需求信息;如果QoS帧中的Content字段为When Strategy=0,则可以从该QoS帧中直接获取到业务的调整阶数qx(x=1~n);如果QoS帧中的Content字段为When Strategy=1,则从该QoS帧中获取到业务的QoS指数,根据QoS指数进行调整阶数的映射,得到业务的调整阶数qx(x=1~n);如此,可以根据业务的调整阶数,得到业务的实时QoS指数集合Qn={q1,q2….qn}。

QoS整型器,用于根据设置模块预先设置的业务的默认优先级指数和从QoS指标及调整模块来的业务的实时QoS指数,生成业务加权后的判决指数。

具体地,将业务的默认优先级指数Dn={d1,d2….dn}和业务的实时QoS指数Qn={q1,q2….qn}进行相加的矢量运算,生成业务加权后的判决指数 Fn={f1,f2….fn},即Fn=Dn+Qn。

缓冲模块(Buffer),用于建立资源请求队列,将业务根据判决指数进行缓存。

资源仲裁器,用于根据业务加权后的判决指数进行SoC资源的分配。

具体地,根据业务加权后的判决指数,对各业务资源请求进行仲裁,将SoC资源判决给判决指数最高Max(Fn)的业务。

策略控制配置文件,用于预先定义QoS整型器和资源仲裁器的规则和策略。

下面将介绍一具体实施例,基于本发明的SoC资源仲裁方法和装置来进行QoS动态调整。

图3是本发明一具体实施例中QoS动态调整的曲线示意图。如图3所示,

假设子业务所需的QoS范围为图中阴影区间,上限为最优QoS,下限为QoS底线,当业务在QoS阴影区间内运行时候,均可以接受,并不影响用户感受。

假设业务开始点为A点,因其低于最低值,所以业务的接收端的芯片/实体发出QoS帧,并提出向上调整的需求。具体地,如果采用调整阶段的调整策略,例如,业务的接收端的吞吐率太低,通过Qos帧告诉本地,需要调高业务的吞吐率,该Qos帧中指定了调整阶数,即qn的值已包含在QoS Frame中了,等本地收到Qos帧,提取出QoS调整阶数,则可以对应地提高其资源判决权重;如果采用QoS指数的调整策略,例如,0-31为QoS指数内容,越高位吞吐率越好,如果回复为0,则表明吞吐率非常差,希望本地给予更多的资源,从而使得吞吐率后续能够回升。

QoS指标及调整模块输出递增的数据,叠加上该业务本身的默认优先级指数,使得该业务在仲裁器的总判决指数递增,从而增加该业务在抢占资源上的优势,如果QoS上升的比较慢的话,可以采用更激进的递增方式,比如大幅度的增加粗调的阶数,从而保证在一定时间内,该业务能够逐渐提升QoS值。

为解决“贪婪”问题,当QoS值上升到超过中间值的时候,如图中B点, 这时QoS帧的调整阶数将保持不变,主要目的是保证业务的平滑性及过度抢占资源。当处于某种原因,QoS值逐渐增加,并且触及上限的情况下,如图中C点,需要逐渐降低调整阶数,使得系统有机会将有限的资源逐渐分配给其他业务。同样,当QoS下降到中间值的时候,调整阶数保持不变,如图中D点的位置,除非由于QoS指标一直下降并触及下限,如图中E点,调整阶数又开始递增,如系统处于A点一样,整个系统周而复始的处于动态自适应的调整过程中。设计的目的是使得各业务均能够在QoS所能够接受的范围内稳定运行,而且不失公平性。

本发明中,通过定义QoS帧并嵌入到各业务的帧格式中,从而可以将QoS指标及调整需求进行实时传递;定义不同的调整策略,当处于调整阶段时,由对端发起,当处于QoS指标阶段时,由本地调整;根据业务的默认优先级指数和业务的实时QoS指数生成业务加权后的判决指数,将SoC资源判决给判决指数最高的业务,从而能够最大程度地利用QoS指标的变化,动态地对系统内资源进行仲裁,达到优化QoS的目的。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1