技术领域
[0001] 本
发明涉及多业务并发操作技术领域,尤指一种共用资源仲裁方法和装置。
背景技术
[0002] 随技术的发展,芯片的集成度越来越高,对于片上系统(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芯片在多业务并行操作时的整体指标优
化成为一直在研究的问题。
[0003] 目前在SoC设计中,主要采用的是基于
硬件的仲裁方案,这类方案往往是由硬件根据业务中优先级进行仲裁,通常设计较为简单,导致灵活性差。此外,SoC在进行集成的时候,需要根据不同业务的特性和需求进行定制性的设计,由于特定用途集成
电路(ASIC,Application Specific Integrated Circuit)的特殊性,在设计完成后,如果资源分配的规则变动的话,需要额外设计硬件,这势必给芯片设计的成本及周期带来不利因素。
发明内容
[0004] 为了解决上述技术问题,本发明提供了一种共同资源仲裁方法和装置,能够在多业务并发操作时,实现资源的合理分配。
[0005] 为了达到本发明目的,本发明提供了一种共同资源仲裁方法,包括:接收业务资源
请求链表,对所述业务资源请求链表进行检查,将通过检查的业务资源请求链表发送到待处理业务队列,其中所述业务资源请求链表包括资源请求单元;根据获取的共同资源的使用情况和业务资源请求链表的资源需求,确定仲裁策略;根据所述仲裁策略,对所述待处理业务队列中的业务资源请求链表的资源请求单元进行重组,将重组后的资源请求单元发送到仲裁后业务队列,并将共同资源按照所述仲裁后业务队列进行资源分配。
[0006] 进一步地,所述方法还包括:预先设置判决准则,并将判决准则存储在规则库中,其中,所述判决准则至少包括先来先到、轮流处理、完全优先级、混合策略和动态调度;所述先来先到具体为记录业务资源请求链表的每个资源请求单元进入待处理业务队列中的时间点,根据所述时间点对资源请求单元进行重组;所述轮流处理具体为轮流获取待处理业务队列中业务资源请求链表的资源请求单元进行重组;所述完全优先级具体为根据待处理业务队列中业务资源请求链表的优先级,对业务资源请求链表中的资源请求单元进行重组;所述混合策略具体为随机对待处理业务队列中业务资源请求链表的资源请求单元进行重组;所述动态调度具体为根据业务的动态需求,对仲裁后业务队列中资源请求单元进行重组。
[0007] 进一步地,所述接收业务资源请求链表,对所述业务资源请求链表进行检查,将通过检查的业务资源请求链表发送到待处理业务队列,包括:接收业务资源请求链表,所述业务资源请求链表中的资源请求单元基于Buffer-Descriptor链表结构排列,且所述资源请求单元包括资源需求信息;对所述业务资源请求链表中的资源请求单元进行合理性检查;如果通过检查,则将所述业务资源请求链表发送到待处理业务队列;如果没有通过检查,则抛弃所述业务资源请求链表。
[0008] 进一步地,所述方法还包括:资源使用情况监控模
块监控SoC中的共用资源的使用情况;根据获取的共同资源的使用情况和业务资源请求链表的资源需求,确定仲裁策略,包括:从所述资源使用情况监控模块获取共同资源的使用情况,并从所述待处理业务队列获取业务资源请求链表的资源需求,根据所述共同资源的使用情况和所述业务资源请求链表的资源需求确定仲裁策略;所述仲裁策略包括运用规则库中判决准则的一种或几种。
[0009] 进一步地,所述方法还包括:将共同资源按照所述仲裁后业务队列进行资源分配的过程中,运用动态调度判决准则对所述仲裁后业务队列中的资源请求单元进行重组。
[0010] 本发明还提供了一种共同资源仲裁装置,包括:链表处理模块、待处理业务队列中和仲裁后业务队列,其中,所述链表处理模块,还包括需求处理单元、仲裁单元和队列处理单元;所述需求处理单元,用于接收业务资源请求链表,对所述业务资源请求链表进行检查,将通过检查的业务资源请求链表发送到待处理业务队列,其中所述业务资源请求链表包括资源请求单元;所述仲裁单元,用于根据获取的共同资源的使用情况和业务资源请求链表的资源需求,确定仲裁策略;所述队列处理单元,用于根据所述仲裁策略,对所述待处理业务队列中的业务资源请求链表的资源请求单元进行重组,将重组后的资源请求单元发送到仲裁后业务队列,并将共同资源按照所述仲裁后业务队列进行资源分配。
[0011] 进一步地,所述装置还包括:规则库,用于存储预先设置的判决准则,其中,所述判决准则至少包括先来先到、轮流处理、完全优先级、混合策略和动态调度;所述先来先到具体为记录业务资源请求链表的每个资源请求单元进入待处理业务队列中的时间点,根据所述时间点对资源请求单元进行重组;所述轮流处理具体为轮流获取待处理业务队列中业务资源请求链表的资源请求单元进行重组;所述完全优先级具体为根据待处理业务队列中业务资源请求链表的优先级,对业务资源请求链表中的资源请求单元进行重组;所述混合策略具体为随机对待处理业务队列中业务资源请求链表的资源请求单元进行重组;所述动态调度具体为根据业务的动态需求,对仲裁后业务队列中资源请求单元进行重组。
[0012] 进一步地,所述需求处理单元,具体用于接收业务资源请求链表,所述业务资源请求链表中的资源请求单元基于Buffer-Descriptor链表结构排列,且所述资源请求单元包括资源需求信息;对所述业务资源请求链表中的资源请求单元进行合理性检查;如果通过检查,则将所述业务资源请求链表发送到待处理业务队列;如果没有通过检查,则抛弃所述业务资源请求链表。
[0013] 进一步地,所述装置还包括:资源使用情况监控模块,用于监控SoC中的共用资源的使用情况;所述仲裁单元,具体用于从所述资源使用情况监控模块获取共同资源的使用情况,并从所述待处理业务队列获取业务资源请求链表的资源需求,根据所述共同资源的使用情况和所述业务资源请求链表的资源需求确定仲裁策略;所述仲裁策略包括运用规则库中判决准则的一种或几种。
[0014] 进一步地,所述装置还包括:编程
接口,用于提供所述规则库中判决准则更改和增减的接口。
[0015] 与
现有技术相比,本发明包括接收业务资源请求链表,对所述业务资源请求链表进行检查,将通过检查的业务资源请求链表发送到待处理业务队列,其中所述业务资源请求链表包括资源请求单元;根据获取的共同资源的使用情况和业务资源请求链表的资源需求,确定仲裁策略;根据所述仲裁策略,对所述待处理业务队列中的业务资源请求链表的资源请求单元进行重组,将重组后的资源请求单元发送到仲裁后业务队列,并将共同资源按照所述仲裁后业务队列进行资源分配。通过本发明,解决了SoC内共同资源的动态分配问题,其资源分配策略可调整,系统可扩展,且实现容易,能够在多业务并发操作时,实现资源的合理分配。
[0016] 本发明的其它特征和优点将在随后的
说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、
权利要求书以及
附图中所特别指出的结构来实现和获得。
附图说明
[0017] 附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本
申请的
实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
[0018] 图1是基于Buffer-Descriptor进行共同资源仲裁的示意图。
[0019] 图2是本发明的一种实施例中共同资源仲裁装置的结构示意图。
[0020] 图3是本发明的一种实施例中共同资源仲裁方法的流程示意图。
[0021] 图4是本发明的一种实施例中基于先来先到进行共同资源仲裁的示意图。
[0022] 图5是本发明的一种实施例中基于轮流处理进行共同资源仲裁的示意图。
[0023] 图6是本发明的一种实施例中基于完全优先级进行共同资源仲裁的示意图。
[0024] 图7是本发明的一种实施例中基于混合策略进行共同资源仲裁的示意图。
[0025] 图8是本发明的一种实施例中基于动态调度进行共同资源仲裁的示意图。
具体实施方式
[0026] 为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0027] 在附图的
流程图示出的步骤可以在诸如一组计算机可执行指令的
计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0028] 通常在通信SoC中,有非常多的系统采用的是基于包的处理方法,比较典型的系统有无线保真(WIFI,Wireless Fidelity),通用
串行总线(USB,Universal Serial Bus),PCI-E(PCI-Express),超宽带(UWB,Ultra Wideband)等多种规范。在实现的过程中,如图1所示,一般采用缓冲区描述符(Buffer-Descriptor)进行共同资源仲裁。
[0029] 请参考图1,大方块代表Buffer-Descriptor,其本身是一些与业务关联的字段,当处理器处理到该大方块的时候,先分析其中的小方块代表的字段,通常字段中包括数据单元所在的起始物理
指针,数据字段的长度,下一处理模块的指针等信息。处理器根据数据单元的指针及长度信息从内存中读出相应的数据,然后封装上包头,发送出去。当本包发送完成后,处理器根据链表的下一模块指针向右移动到后续模块进行处理,一直到最后一个模块。
[0030] 单一系统的处理比较简单。但是,当多个类似的系统共同工作的时候,对于共用资源会有同时发起请求的时刻,典型的如:长期演进(LTE,Long Term Evolution)与WIFI共同需要数字
信号处理(DSP,digital signal processing)资源,WIFI与蓝牙系统共同需要申请射频资源,通讯模块与视频模块均需要同时访问外部双倍速率同步动态随机
存储器(DDR,Double Data Rate SDRAM)等,这时,就需要一个模型或
算法对资源进行有效地分配和仲裁,并使得整个系统公平和鲁棒。
[0031] 本发明提出一种基于链表结构的共用资源模型,能够在多业务并发操作时,实现资源的合理分配。
[0032] 图2是本发明的一种实施例中共同资源仲裁装置的结构示意图。如图2所示,该共同资源仲裁装置包括链表处理模块(LUP,Link Processing Unit),规则库,资源使用情况及监控模块和编程接口;此外,在该共同资源仲裁装置中还设置有待处理业务队列和仲裁后业务队列。其中,
[0033] 资源使用情况监控模块,用于监控SoC中的共用资源,并向链表处理模块提供共同资源的使用情况。
[0034] 具体地,共同资源的使用情况包括但不限于:总线的带宽,内存的占用情况、处理通道数等;资源使用情况监控模块可以实时监控或者按照时间段监控SoC中的共用资源,并根据需求向链表处理模块发送共同资源的使用情况。
[0035] 规则库,用于存储判决准则。
[0036] 具体地,可以根据SoC本身的业务性质,例如语音、图像、数据等具有不同的业务性质,因不同的业务性质对延时、处理速度、QoS等有不同的需求,所以可以预先设置判决准则并存储在规则库中。
[0037] 编程接口,用于提供规则库中判决准则更改和增减的接口。
[0038] 具体地,例如根据某一业务的QoS的状况,为了达到资源的合理调配,获取QoS的综合最优,通过编程接口对规则库中的判决准则进行更改。
[0039] 链表处理模块,进一步包括需求处理单元、仲裁单元和队列处理单元。
[0040] 需求处理单元用于接收业务资源请求链表,该业务资源请求链表包括资源请求单元;对该业务资源请求链表进行检查,将通过检查的业务资源请求链表发送到待处理业务队列;
[0041] 具体地,需求处理单元接收业务资源请求链表,该业务资源请求链表包括资源请求单元,该业务资源请求链表中的资源请求单元可以是基于Buffer-Descriptor链表结构,每个资源请求单元包括资源需求信息;对该业务资源请求链表中的资源请求单元进行合理性检查,该合理性检查包括但不限于检查业务资源请求链表中的资源请求单元的属性是否合法,各字段的内容及格式是否遵循系统的要求等;如果通过检查,则将业务资源请求链表发送到待处理业务队列;如果没有通过检查,则抛弃该业务资源请求链表,并给出中断,继续下一个业务资源请求链表的处理和检查。
[0042] 仲裁单元用于获取共同资源的使用情况和业务资源请求链表中资源请求单元的资源需求,确定仲裁策略;
[0043] 具体地,仲裁单元从资源使用情况监控模块获取共同资源的使用情况,并从待处理业务队列获取业务资源请求链表的资源需求,根据共同资源的使用情况和业务资源请求链表的资源需求确定仲裁策略,该仲裁策略包括运用规则库中判决准则的一种或几种。
[0044] 队列处理单元用于根据仲裁策略,对待处理业务队列中业务资源请求链表的资源请求单元进行重组,将重组后的资源请求单元发送到仲裁后业务队列,并将共同资源按照仲裁后业务队列顺序进行资源分配;
[0045] 具体地,队列处理单元对待处理业务队列中业务资源请求链表的资源请求单元进行基于Buffer-Descriptor链表结构的重组。
[0046] 图3是本发明的一种实施例中共同资源仲裁方法的流程示意图。如图3所示,包括:
[0047] 步骤301,预先设置判决准则,并将判决准则存储在规则库中。
[0048] 在本步骤中,SoC本身,例如语音、图像、数据等具有不同的业务性质,因不同的业务性质对延时、处理速度、QoS等有不同的需求,所以可以根据SoC本身的业务性质,预先设置判决准则并存储在规则库中。
[0049] 典型的判决准则可以如图4到图8所示,至少包括先来先到、轮流处理、完全优先级、混合策略和动态调度。当然还可以有其他判决准则,在此不限制。
[0050] 如图4所示的先来先到判决准则,具体为:记录业务资源请求链表的每个资源请求单元进入待处理业务队列中的时间点,根据时间点的先后,对资源请求单元进行重组,即在图4中,仲裁后业务队列为1-2-3-4-5-6-7-8-9。
[0051] 如图5所示的轮流处理判决准则,具体为:轮流获取待处理业务队列中业务资源请求链表的资源请求单元进行重组,即在图5中,待处理业务队列中有三个业务资源请求链表,分别为1-2-3,4-5,6-7-8-9,仲裁后业务队列为1-4-6-2-5-7-3-8-9。
[0052] 如图6所示的完全优先级判决准则,具体为:根据待处理业务队列中业务资源请求链表的优先级,对业务资源请求链表中的资源请求单元进行重组,即在图6中,待处理业务队列中有三个业务资源请求链表按照优先级由高到低的顺序排列,分别为1-2-3,4-5,6-7-8-9,仲裁后业务队列为1-2-3-4-5-6-7-8-9。
[0053] 如图7所示的混合策略判决准则,具体为:随机对待处理业务队列中业务资源请求链表的资源请求单元进行重组,例如在图7中,待处理业务队列中有三个业务资源请求链表,分别为1-2-3,4-5,6-7-8-9,仲裁后业务队列为1-2-4-5-6-7-8-3-9,当然还可以随机重组为其他顺序的链表,在此不限制。
[0054] 如图8所示的动态调度判决准则,具体为:根据业务的动态需求,对仲裁后业务队列中资源请求单元进行重组,例如在图8中,仲裁后业务队列为1-2-3-4,如果业务的动态需求,例如对端链路的丢失,使得没有必要再处理2和3,虽然2和3已经经过了仲裁,在1处理完可以获得资源,这时只需要动态的调整队列1的后续链表指针,由指向2调整为指向4,则可完成跳过2和3,而直接处理4,达到资源优化的目的。
[0055] 此外,还可以根据需要,通过编程接口对规则库中的判决准则进行更改和增减。
[0056] 步骤302,接收业务资源请求链表,该业务资源请求链表包括资源请求单元,对该业务资源请求链表进行检查,将通过检查的业务资源请求链表发送到待处理业务队列。
[0057] 在本步骤中,链表处理模块中的需求处理单元接收业务资源请求链表,该业务资源请求链表包括资源请求单元,该业务资源请求链表中的资源请求单元可以是基于Buffer-Descriptor链表结构,每个资源请求单元包括资源需求信息;对该业务资源请求链表中的资源请求单元进行合理性检查,该合理性检查包括但不限于检查业务资源请求链表中的资源请求单元的属性是否合法,各字段的内容及格式是否遵循系统的要求等;如果通过检查,则将业务资源请求链表发送到待处理业务队列;如果没有通过检查,则抛弃该业务资源请求链表,并给出中断,继续下一个业务资源请求链表的处理和检查。
[0058] 步骤303,根据获取的共同资源的使用情况和业务资源请求链表中资源请求单元的资源需求,确定仲裁策略。
[0059] 在本步骤中,链表处理模块中仲裁单元从资源使用情况监控模块获取共同资源的使用情况,并从待处理业务队列获取业务资源请求链表的资源需求,根据共同资源的使用情况和业务资源请求链表的资源需求确定仲裁策略。
[0060] 仲裁策略包括运用规则库中判决准则的一种或几种。仲裁策略可以由
软件事先定义,也可以根据业务的实际情况动态调整。例如,仲裁策略仅运用图5场景的轮流处理判决准则;也可以先采用图4场景的先来先到判决准则,后来由于QoS的需求,改变为图6场景的完全优先级判决准则,然后又恢复到图4场景的先来先到判决准则等。
[0061] 步骤304,根据仲裁策略,对待处理业务队列中业务资源请求链表的资源请求单元进行重组,将重组后的资源请求单元发送到仲裁后业务队列,并将共同资源按照仲裁后业务队列进行资源分配。
[0062] 在本步骤中,链表处理模块中的队列处理单元根据仲裁策略,对待处理业务队列中业务资源请求链表的资源请求单元进行基于Buffer-Descriptor链表结构的重组,将重组后的资源请求单元发送到仲裁后业务队列,并将共同资源按照仲裁后业务队列顺序进行资源分配。
[0063] 在将共同资源按照仲裁后业务队列顺序进行资源分配的过程中,仍然可以运用动态调度判决准则对仲裁后业务队列的资源请求单元进行重组。
[0064] 在本发明中在仲裁层面满足以下几点:
[0065] (1)互斥性:系统内部的共用资源在任意时刻只能被一个需求方访问,不会出现多个
节点同时访问同一个共用资源的情况;
[0066] (2)无饥饿:每个资源需求方的访问请求都可以得到满足,不出现请求访问临界资源的节点无限等待的情况;
[0067] (3)无死
锁:算法模型不会导致系统出现死锁;
[0068] (4)公平性:需求方对共用资源的请求给予一定的公平性原则,算法模型要提供某种机制保证这种公平性。
[0069] 本发明提供的共同资源仲裁方法和装置,解决了SoC内共同资源的动态分配问题,其资源分配策略可调整,系统可扩展,且实现容易,能够在多业务并发操作时,实现资源的合理分配。
[0070] 虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的
修改与变化,但本发明的
专利保护范围,仍须以所附的权利要求书所界定的范围为准。