一种总线资源分配方法、装置及相关设备与流程

文档序号:26908248发布日期:2021-10-09 14:21阅读:102来源:国知局
一种总线资源分配方法、装置及相关设备与流程

1.本技术涉及资源共享技术领域,特别涉及一种总线资源分配方法,还涉及一种总线资源分配装置、系统及计算机可读存储介质。


背景技术:

2.随着集成电路的不断发展,对soc(system on chip,片上系统)芯片处理速度性能的要求越来越高。系统总线作为连接各个模块的中枢桥梁,对soc系统的性能起到重要影响,特别是在多个主设备和多个从设备的系统中,总线的仲裁机制将影响多路数据的读写效率,进而影响soc芯片的性能。
3.相关技术中,系统总线的多用户仲裁方法主要包括固定优先级法和时分复用法。其中,固定优先级法是指各个主模块优先级的高低是确定的,不会随着系统的运行而改变,当多个主模块同时请求使用总线资源的时候,仲裁器会根据主模块优先级的高低而分配总线使用权;但是,当高优先级的主模块一直在使用总线的时候,低优先级的主模块会得不到总线资源,从而造成低优先级的主模块指令无法生效。时分复用法主要就是预先为每一个主设备占用共享资源指定固定长度的时间,当时间结束时将共享资源分配给另一个主设备;但是,这种方法对时间片的划分要求很高,如果划分不合理则会造成高优先级高带宽要求的通路的等待时间加长,系统的总线性能下降,并且,在实际应用过程中,不同的主从设备间的数据读写请求带宽是动态变化的,若使用固定的时间片划分,则一定会在某些时间内造成仲裁分配效率低下,进而影响总线和soc芯片的性能。
4.因此,如何实现总线资源的合理分配,以有效提高总线资源的利用率,进而提高系统性能是本领域技术人员亟待解决的问题。


技术实现要素:

5.本技术的目的是提供一种总线资源分配方法,该总线资源分配方法可以实现总线资源的合理分配,有效地提高了总线资源的利用率,进一步提高了系统性能;本技术的另一目的是提供一种总线资源分配装置、系统及计算机可读存储介质,均具有上述有益效果。
6.第一方面,本技术提供了一种总线资源分配方法,包括:
7.在预设监控周期内,统计各数据通道的数据流量;
8.根据各所述数据通道的数据流量计算获得总数据流量;
9.根据预设总权重、所述总数据流量以及各所述数据通道的数据流量计算获得各所述数据通道的仲裁权重;
10.按照各所述仲裁权重对所述预设监控周期进行时间分片,获得各所述数据通道对应的分配时间,以使各所述数据通道按照所述分配时间获取总线资源。
11.优选的,所述在预设监控周期内,统计各数据通道的数据流量,包括:
12.当所述数据通道为写数据通道时,在所述预设监控周期内,统计所述写数据通道内所有写指令对应的写数据流量;
13.当所述数据通道为读数据通道时,在所述预设监控周期内,统计所述读数据通道内所有读指令对应的读数据流量。
14.优选的,所述在所述预设监控周期内,统计所述写数据通道内所有写指令对应的写数据流量,包括:
15.根据所述写指令确定写数据位宽标志位和写数据长度;
16.根据所述写数据位宽标志位计算获得写数据位宽;
17.根据所述写数据长度计算获得写数据突发长度;
18.根据所述写数据位宽和所述写数据突发长度计算获得所述写指令对应的写数据流量;
19.统计所有所述写指令对应的写数据流量,获得所述写数据通道在所述预设监控周期内的写数据流量。
20.优选的,所述在所述预设监控周期内,统计所述读数据通道内所有读指令对应的读数据流量,包括:
21.根据所述读指令确定读数据位宽标志位和读数据长度;
22.根据所述读数据位宽标志位计算获得读数据位宽;
23.根据所述读数据长度计算获得读数据突发长度;
24.根据所述读数据位宽和所述读数据突发长度计算获得所述读指令对应的读数据流量;
25.统计所有所述读指令对应的读数据流量,获得所述读数据通道在所述预设监控周期内的读数据流量。
26.优选的,所述根据预设总权重、所述总数据流量以及各所述数据通道的数据流量计算获得各所述数据通道的仲裁权重之前,还包括:
27.根据所述预设监控周期和总线数据位宽计算获得数据通道最大带宽;
28.判断各所述数据通道的数据流量是否超出对应的数据通道最大带宽;
29.若否,则执行所述根据预设总权重、所述总数据流量以及各所述数据通道的数据流量计算获得各所述数据通道的仲裁权重的步骤。
30.优选的,所述总线资源分配还包括:
31.当所述数据通道的数据流量超出对应的数据通道最大带宽时,根据所述预设总权重计算获得各所述数据通道的平均仲裁权重;
32.按照所述平均仲裁权重对所述预设监控周期进行时间分片,获得各所述数据通道对应的分配时间,以使各所述数据通道按照所述分配时间获取总线资源。
33.优选的,所述各所述数据通道按照所述分配时间获取总线资源,包括:
34.当所述数据通道获取所述总线资源的时间达到所述分配时间时,切换至下一数据通道,直至所有所述数据通道切换完毕。
35.第二方面,本技术还公开了一种总线资源分配装置,包括:
36.数据流量监控模块,用于在预设监控周期内,统计各数据通道的数据流量;
37.数据流量统计模块,用于根据各所述数据通道的数据流量计算获得总数据流量;
38.仲裁权重分配模块,用于根据预设总权重、所述总数据流量以及各所述数据通道的数据流量计算获得各所述数据通道的仲裁权重;
39.时间分片模块,用于按照各所述仲裁权重对所述预设监控周期进行时间分片,获得各所述数据通道对应的分配时间,以使各所述数据通道按照所述分配时间获取总线资源。
40.第三方面,本技术还公开了一种总线资源分配系统,包括:
41.存储器,用于存储计算机程序;
42.处理器,用于执行所述计算机程序时实现如上所述的任一种总线资源分配方法的步骤。
43.第四方面,本技术还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的任一种总线资源分配方法的步骤。
44.本技术所提供的一种总线资源分配方法,包括在预设监控周期内,统计各数据通道的数据流量;根据各所述数据通道的数据流量计算获得总数据流量;根据预设总权重、所述总数据流量以及各所述数据通道的数据流量计算获得各所述数据通道的仲裁权重;按照各所述仲裁权重对所述预设监控周期进行时间分片,获得各所述数据通道对应的分配时间,以使各所述数据通道按照所述分配时间获取总线资源。
45.可见,本技术所提供的总线资源分配方法,可以实时监控每路数据通道的数据流量,并通过对各路数据通道的数据流量进行分析,可以在系统运行过程中对不同数据通道的仲裁优先级进行实时调整,使得高速高带宽读写请求的数据通道获得相应的高优先级,低速低带宽读写请求的数据通道获得相应的低优先级,从而实现了总线资源的合理分配,有效地提高了总线资源的利用率,进一步提高了系统性能。
46.本技术所提供的一种总线资源分配装置、系统及计算机可读存储介质,均具有上述有益效果,在此不再赘述。
附图说明
47.为了更清楚地说明现有技术和本技术实施例中的技术方案,下面将对现有技术和本技术实施例描述中需要使用的附图作简要的介绍。当然,下面有关本技术实施例的附图描述的仅仅是本技术中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本技术的保护范围。
48.图1为本技术所提供的一种总线资源分配方法的流程示意图;
49.图2为本技术所提供的另一种总线资源分配方法的流程示意图;
50.图3为本技术所提供的一种2主2从设备axi总线的结构示意图;
51.图4为本技术所提供的一种监控周期划分示意图;
52.图5为本技术所提供的一种总线资源分配装置的结构示意图;
53.图6为本技术所提供的一种总线资源分配系统的结构示意图。
具体实施方式
54.本技术的核心是提供一种总线资源分配方法,该总线资源分配方法可以实现总线资源的合理分配,有效地提高了总线资源的利用率,进一步提高了系统性能;本技术的另一
核心是提供一种总线资源分配装置、系统及计算机可读存储介质,也具有上述有益效果。
55.为了对本技术实施例中的技术方案进行更加清楚、完整地描述,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
56.本技术实施例提供了一种总线资源分配方法。
57.请参考图1,图1为本技术所提供的一种总线资源分配方法的流程示意图,该总线资源分配方法可包括:
58.s101:在预设监控周期内,统计各数据通道的数据流量;
59.本步骤旨在对各数据通道的数据流量进行统计,该数据通道是指系统内用于进行读数据或写数据的通道,具体为统计每路数据通道在一个预设数据监控周期内的数据流量。其中,预设监控周期的取值并不影响本技术方案的实施,由技术人员根据实际需求进行设置即可,本技术对此不做限定。
60.作为一种优选实施例,上述在预设监控周期内,统计各数据通道的数据流量,可以包括:当数据通道为写数据通道时,在预设监控周期内,统计写数据通道内所有写指令对应的写数据流量;当数据通道为读数据通道时,在预设监控周期内,统计读数据通道内所有读指令对应的读数据流量。
61.由于数据通道用于实现数据读写功能,因此,数据通道可以分为读数据通道和写数据通道两种类型,在此基础上,在对各路数据通道进行数据流量统计时,可以分别统计读数据通道中的读数据流量和写数据通道中的写数据流量。具体而言,对于写数据通道,可以是对其在预设监控周期内获得的所有写指令对应的写数据流量进行统计;对于读数据通道,可以是对其在预设监控周期内获得的所有读数据指令对应的读数据流量进行统计。
62.作为一种优选实施例,上述在预设监控周期内,统计写数据通道内所有写指令对应的写数据流量,可以包括:根据写指令确定写数据位宽标志位和写数据长度;根据写数据位宽标志位计算获得写数据位宽;根据写数据长度计算获得写数据突发长度;根据写数据位宽和写数据突发长度计算获得写指令对应的写数据流量;统计所有写指令对应的写数据流量,获得写数据通道在预设监控周期内的写数据流量。
63.本优选实施例提供了一种写数据通道内写数据流量的统计方法。具体而言,首先统计每个写指令对应的写数据流量,再对预设监控周期内所有写指令对应的写数据流量进行加和计算,即可获得写数据通道在预设监控周期内所有的写数据流量。其中,在对每个写指令进行写数据流量统计时,可根据写数据位宽和写数据突发长度计算获得,写数据位宽可以根据写指令中的写数据位宽标志位计算获得,写数据突发长度可以根据写指令中的写数据长度计算获得,其中,写数据位宽标志位即为总线协议中的写数据位宽标志位,写数据长度即为总线协议中规定的写数据长度。
64.作为一种优选实施例,上述在预设监控周期内,统计读数据通道内所有读指令对应的读数据流量,可以包括:根据读指令确定读数据位宽标志位和读数据长度;根据读数据位宽标志位计算获得读数据位宽;根据读数据长度计算获得读数据突发长度;根据读数据位宽和读数据突发长度计算获得读指令对应的读数据流量;统计所有读指令对应的读数据流量,获得读数据通道在预设监控周期内的读数据流量。
65.本优选实施例提供了一种读数据通道内读数据流量的统计方法。具体而言,首先统计每个读指令对应的读数据流量,再对预设监控周期内所有读指令对应的读数据流量进行加和计算,即可获得读数据通道在预设监控周期内所有的读数据流量。其中,在对每个读指令进行读数据流量统计时,可根据读数据位宽和读数据突发长度计算获得,读数据位宽可以根据读指令中的读数据位宽标志位计算获得,读数据突发长度可以根据读指令中的读数据长度计算获得,其中,读数据位宽标志位即为总线协议中的读数据位宽标志位,读数据长度即为总线协议中规定的读数据长度。
66.s102:根据各数据通道的数据流量计算获得总数据流量;
67.本步骤旨在实现总数据流量统计,即计算所有数据通道的数据流量的加和,获得总数据流量。需要说明的是,所有数据通道的总数据流量是指同类型数据通道的总数据流量,如上所述,数据通道可以分为读数据通道和写数据通道两种类型,因此,在统计总数据流量时,可以是分别统计系统内所有写数据通道的总写数据流量,和统计系统内所有读数据通道的总读数据流量,进而分别对所有读数据通道和所有写数据通道进行后续总线资源分配。
68.s103:根据预设总权重、总数据流量以及各数据通道的数据流量计算获得各数据通道的仲裁权重;
69.本步骤旨在对各数据通道进行仲裁权重计算,即结合预设总权重对总数据流量以及各数据通道的数据流量进行计算,获得各数据通道对应的仲裁权重,该仲裁权重用于实现对应数据通道的时间分片,其中,预设总权重为预先设置的一定值,其具体取值并不影响本技术方案的实施。在具体实现过程中,可以先计算各数据通道的数据流量占总数据流量的比例,进一步计算各比例与预设总权重的乘积,该乘积即为对应数据通道的仲裁权重。
70.可以想到的是,在对比例值与预设总权重进行乘积计算时,其乘积的取值并不一定为整数,为便于进行后续时间分片,可对各乘积进行取整操作,并将取整后得到的整数作为对应数据通道的仲裁权重。具体而言,首先,在所有乘积中筛选出取值最大的乘积,并在最后对该最大乘积对应的数据通道进行仲裁权重计算;进一步,当乘积取值不超过1时,即整数部分为0时,设置其对应的数据通道的仲裁权重为1,当乘积取值超过1时,即整数部分不为0时,设置其对应的数据通道的仲裁权重为该乘积的整数部分,当除最大乘积之外的其他所有乘积取整完毕后,计算预设总权重与其他所有取整完毕后的乘积的加和的差值,并将该差值作为最大乘积的整数部分,即最大乘积对应的数据通道的仲裁权重,由此,实现所有数据通道仲裁权重的计算。
71.s104:按照各仲裁权重对预设监控周期进行时间分片,获得各数据通道对应的分配时间,以使各数据通道按照分配时间获取总线资源。
72.本步骤旨在对各数据通道进行时间分片,以使各数据通道根据分配时间进行总线资源的获取,从而实现总线资源分配。首先,按照各仲裁权重对预设监控周期进行时间分片,即按照各个仲裁权重将预设监控周期分为相应数量个时间片,当然,时间片的数量等于仲裁权重的数量,在具体实现时,先计算各仲裁权重占预设总权重的比例,进而计算各比例与预设监控周期的乘积,该乘积即为对应数据通道所分配的时间;进一步,各数据通道按照自身所分配的时间进行总线资源的获取即可,由此,实现总线资源分配。
73.作为一种优选实施例,上述各数据通道按照分配时间获取总线资源,可以包括:当
数据通道获取总线资源的时间达到分配时间时,切换至下一数据通道,直至所有数据通道切换完毕。
74.在各数据通道按照分配时间获取总线资源时,依次切换数据通道即可。具体而言,可以控制每路数据通道依次按照对应的分配时间获取总线资源,一旦获取总线资源的时间达到其对应的分配时间,即可切换至下一路数据通道,直至系统中的所有数据通道切换完毕,由此,实现本监控周期内的总线资源分配。需要说明的是,数据通道的切换顺序并不唯一,例如,可以按照分配时间由小到大或由大到小的顺序进行数据通道的切换等,本技术对此不做限定。
75.可以理解的是,当数据通道切换完毕后,说明当前监控周期结束,此时,将所述数据初始化,并返回s101的步骤,重新进行下一监控周期的总线资源分配即可。
76.可见,本技术所提供的总线资源分配方法,可以实时监控每路数据通道的数据流量,并通过对各路数据通道的数据流量进行分析,可以在系统运行过程中对不同数据通道的仲裁优先级进行实时调整,使得高速高带宽读写请求的数据通道获得相应的高优先级,低速低带宽读写请求的数据通道获得相应的低优先级,从而实现了总线资源的合理分配,有效地提高了总线资源的利用率,进一步提高了系统性能。
77.本技术实施例提供了另一种总线资源分配方法。
78.请参考图2,图2为本技术所提供的另一种总线资源分配方法的流程示意图,该总线资源分配方法可包括:
79.s201:在预设监控周期内,统计各数据通道的数据流量;
80.s202:根据各数据通道的数据流量计算获得总数据流量;
81.s203:根据预设监控周期和总线数据位宽计算获得数据通道最大带宽;
82.s204:判断各数据通道的数据流量是否超出对应的数据通道最大带宽;若否,则执行s205,若是,则执行s206;
83.s205:根据预设总权重、总数据流量以及各数据通道的数据流量计算获得各数据通道的仲裁权重;并按照各仲裁权重对预设监控周期进行时间分片,获得各数据通道对应的分配时间,以使各数据通道按照分配时间获取总线资源;
84.s206:根据预设总权重计算获得各数据通道的平均仲裁权重;并按照平均仲裁权重对预设监控周期进行时间分片,获得各数据通道对应的分配时间,以使各数据通道按照分配时间获取总线资源。
85.具体而言,为保证读写操作的正常运行,进而保证系统性能,在进行仲裁权重计算以及时间分片之前,首先判断各数据通道的数据流量是否超出该数据通道的最大带宽,若是,则说明如果继续按照上述s205的仲裁权重计算方法进行总线资源分配,对应的数据通道将无法进行正常的数据读操作或数据写操作,因此,只有在各数据通道的数据流量均不超出各自对应的数据通道最大带宽时,才可继续按照s205的方法进行仲裁权重计算,进而完成总线资源分配。
86.进一步,如若出现一个或多个数据通道的数据流量超出其对应的数据通道最大带宽,则进入s206进行平均仲裁权重的计算,也就是说所有数据通道的仲裁权重取值相同,由此,即可按照平均仲裁权重对预设监控周期进行时间分片,以使得各个数据通道获得相同的分配时间,并按照该分配时间获取总线资源,从而实现总线资源分配。
87.当然,上述s206中基于平均仲裁权重进行总线资源分配的方法仅为本技术实施例所提供的一种优选实现方式,并不唯一,也可以是直接统计数据通道的数量(读数据通道的数量或写数据通道的数量),并根据数据通道的数量对预设监控周期的时长进行均分处理,其均分值即为各个数据通道对应的分配时间。
88.由此可见,本技术实施例所提供的总线资源分配方法,在基于仲裁权重对各路数据通道进行时间分片之前,首先判断各路数据通道的数据流量是否超出各自对应的最大带宽,并针对不同的情况分别进行基于仲裁权重的时间分片和基于平均仲裁权重的时间分片,从而实现总线资源分配,由此,在实现总线资源合理分配的同时,可以有效保证数据通道内读/写操作的正常运行,保证系统性能。
89.基于以上各实施例,以axi(advanced extensible interface,先进可扩展接口)总线为例,本技术实施例提供了又一种总线资源分配方法,其具体实现流程如下:
90.一、对系统内的各路数据通道进行通道标记,标记内容包括但不限于数据通道操作类型、数据交互方向以及数据交互双方。
91.在axi总线中,数据通道可用于实现读数据和写数据两种操作,在通道标记时可以标记为读类型或写类型,数据交互方向由主设备端口号和从设备端口号标识,例如,参考图3,图3为本技术所提供的一种2主2从设备axi总线的结构示意图,当主设备0去读从设备1时,将此通道标记为3b001,其中,3代表3个bit位;b代表2进制;bit位[2]代表“读”或“写”类型,当取值为0时代表为读类型,当取值为1时代表为写类型;bit位[1]代表“主设备”,当取值为0时代表为主设备0(master0),当取值为1时代表为主设备1(master1);bit位[0]代表“从设备”,当取值为0时代表为从设备0(slave0),当取值为1时代表为从设备1(slave)。具体可参照如下表格,表1为本技术所提供的一种通道标记中的各bit位对照表。
[0092]
表1一种通道标记中的各bit位对照表
[0093]
通道标记r/wmasterslavebite位[2][1][0]
[0094]
二、对各路数据通道进行数据流量监控:
[0095]
1、根据系统时钟生成每次监控的时间点,如每100ms(预设监控周期)统计分析一次,可以通过系统时钟计数的方式生成每100ms监测的使能信号。
[0096]
2、对于写指令,对应数据通道的数据流量统计方法过程:
[0097]
首先,计算本次写指令的数据流量:
[0098]
w_flow_0=(w_burst_size x w_burst_len);
[0099]
其中,w_flow_0为当次写指令的数据流量;w_burst_size为当次写指令操作的数据位宽,w_burst_len为当次写操作的数据突发长度;
[0100]
其中,w_burst_size=2
m_axi_awsize
;w_burst_len=m_axi_awlen+1;
[0101]
其中,m_axi_awsize为axi协议中写数据位宽标志位,m_axi_awlen为axi协议中规定的写数据长度;
[0102]
其次,在同一个监控周期内,对所有写指令进行数据流量累加:
[0103]
w_flow_sum=w_flow_0+w_flow_1+w_flow_2+
……
w_flow_n;
[0104]
其中,w_flow_sum为在同一个监控周期内所有写数据流量的和;w_flow_0为第0组写指令的数据流量,w_flow_1为第1组写指令的数据流量,w_flow_2为第2组写指令的数据
流量,w_flow_n为第n组写指令的数据流量;
[0105]
进一步,当到达监控的时间点时将其寄存:
[0106]
w_flow_sum_reg=w_flow_sum;
[0107]
其中,w_flow_sum_reg为当前周期的写数据流量和的寄存值;
[0108]
最后,在进入下一个监控周期时将其清零:
[0109]
w_flow_sum=0。
[0110]
3、对于读指令,对应数据通道的数据流量统计方法过程:
[0111]
首先,计算本次读指令的数据流量:
[0112]
r_flow_0=(r_burst_size x r_burst_len);
[0113]
其中,r_flow_0为当次读指令的数据流量;r_burst_size为当次读指令操作的数据位宽,r_burst_len为当次读操作的数据突发长度;
[0114]
其中,r_burst_size=2
m_axi_awsize
;r_burst_len=m_axi_awlen+1;
[0115]
其中,m_axi_awsize为axi协议中读数据位宽标志位,m_axi_awlen为axi协议中规定的读数据长度;
[0116]
其次,在同一个监控周期内,对所有读指令进行数据流量累加:
[0117]
r_flow_sum=r_flow_0+r_flow_1+r_flow_2+
……
r_flow_n;
[0118]
其中,r_flow_sum为在同一个监控周期内所有读数据流量的和;r_flow_0为第0组读指令的数据流量,r_flow_1为第1组读指令的数据流量,r_flow_2为第2组读指令的数据流量,r_flow_n为第n组读指令的数据流量;
[0119]
进一步,当到达监控的时间点时将其寄存:
[0120]
r_flow_sum_reg=r_flow_sum;
[0121]
其中,r_flow_sum_reg为当前周期的读数据流量和的寄存值;
[0122]
最后,在进入下一个监控周期时将其清零:
[0123]
r_flow_sum=0。
[0124]
三、进行仲裁权重计算,通过对各个数据通道读写数据流量的监控结果推算出各个数据通道的带宽需求,并计算出在仲裁时各个数据通道的权重,其中,读数据通道和写数据通道方法计算方法相同,不再重复介绍。
[0125]
1、计算数据通道最大带宽:
[0126]
flow_max=f
sys
*data_width;
[0127]
其中,flow_max为数据通道最大带宽;f
sys
为系统时钟频率,data_width为总线数据位宽;
[0128]
2、计算各个写数据通道的带宽需求比例,并按比例换算为各个写数据通道的基础仲裁权重,例如,将总仲裁权重设置为64,以附图3中的结构为例:
[0129]
首先,计算各个写数据通道中写数据流量之和:
[0130]
w_flow_sum_all_chan=w_flow_sum_reg_00+w_flow_sum_reg_01+w_flow_sum_reg_10+r_flow_sum_reg_11;
[0131]
其中,w_flow_sum_all_chan为所有写数据流量之和;w_flow_sum_reg_00为主设备0写从设备0通道数据流量,w_flow_sum_reg_01为主设备0写从设备1通道数据流量,w_flow_sum_reg_10为主设备1写从设备0通道数据流量,w_flow_sum_reg_11为主设备1写从
设备1通道数据流量;
[0132]
进一步,计算各个写数据通道的基础仲裁权重:
[0133]
w_weight_00=w_flow_sum_reg_00/w_flow_sum_all_chan*64;
[0134]
w_weight_01=w_flow_sum_reg_01/w_flow_sum_all_chan*64;
[0135]
w_weight_10=w_flow_sum_reg_10/w_flow_sum_all_chan*64;
[0136]
w_weight_11=w_flow_sum_reg_11/w_flow_sum_all_chan*64;
[0137]
其中,w_weight_00为主设备0写从设备0通道基础仲裁权重,w_weight_01为主设备0写从设备1通道基础仲裁权重,w_weight_10为主设备1写从设备0通道基础仲裁权重,w_weight_11为主设备1写从设备1通道基础仲裁权重。
[0138]
3、计算各个读数据通道的带宽需求比例,并按比例换算为各个读数据通道的基础仲裁权重,例如,将总仲裁权重设置为64,以附图3中的结构为例:
[0139]
首先,计算各个读数据通道中读数据流量之和:
[0140]
r_flow_sum_all_chan=r_flow_sum_reg_00+r_flow_sum_reg_01+r_flow_sum_reg_10+r_flow_sum_reg_11;
[0141]
其中,r_flow_sum_all_chan为所有读数据流量之和;r_flow_sum_reg_00为主设备0读从设备0通道数据流量,r_flow_sum_reg_01为主设备0读从设备1通道数据流量,r_flow_sum_reg_10为主设备1读从设备0通道数据流量,r_flow_sum_reg_11为主设备1读从设备1通道数据流量;
[0142]
进一步,计算各个读数据通道的基础仲裁权重:
[0143]
r_weight_00=r_flow_sum_reg_00/r_flow_sum_all_chan*64;
[0144]
r_weight_01=r_flow_sum_reg_01/r_flow_sum_all_chan*64;
[0145]
r_weight_10=r_flow_sum_reg_10/r_flow_sum_all_chan*64;
[0146]
r_weight_11=r_flow_sum_reg_11/r_flow_sum_all_chan*64;
[0147]
其中,r_weight_00为主设备0读从设备0通道基础仲裁权重,r_weight_01为主设备0读从设备1通道基础仲裁权重,r_weight_10为主设备1读从设备0通道基础仲裁权重,r_weight_11为主设备1读从设备1通道基础仲裁权重。
[0148]
4、实际仲裁权重计算:
[0149]
根据基础仲裁权重计算各个数据通道的实际仲裁权重,由上步骤2和3可以看到,基础仲裁权重值包含整数和小数部分,生成实际仲裁权限可以按如下步骤实现:
[0150]
(1)根据比较,找到基础仲裁权重最大的数据通道,并在最后计算其实际仲裁权重;
[0151]
(2)基础仲裁权重整数部分为0时,实际仲裁权重为1;
[0152]
(3)基础仲裁权重整数部分不为0时,实际仲裁权重等于其整数部分;
[0153]
(4)基础仲裁权重最大的数据通道,其实际仲裁权重等于64减去其他实际仲裁权重加和。
[0154]
四、根据实际仲裁权重生成时间片:通过时钟计数的方式将一个完整的监控周期划分为64份,并按照实际仲裁权重值划分为不同的时间片,例如,参考图4,图4为本技术所提供的一种监控周期划分示意图。
[0155]
五、时间片所有权切换:当其中一个数据通道所拥有总线资源的时间达到时间片
的大小(即分配时间)时,进行时间片所有权切换,即切换至下一数据通道。
[0156]
六、在一个监控周期结束时,将新的仲裁参数更新。
[0157]
可见,本技术实施例所提供的总线资源分配方法,可以实时监控每路数据通道的数据流量,并通过对各路数据通道的数据流量进行分析,可以在系统运行过程中对不同数据通道的仲裁优先级进行实时调整,使得高速高带宽读写请求的数据通道获得相应的高优先级,低速低带宽读写请求的数据通道获得相应的低优先级,从而实现了总线资源的合理分配,有效地提高了总线资源的利用率,进一步提高了系统性能。
[0158]
为解决上述技术问题,本技术还提供了一种总线资源分配装置,请参考图5,图5为本技术所提供的一种总线资源分配装置的结构示意图,该总线资源分配装置可包括:
[0159]
数据流量监控模块1,用于在预设监控周期内,统计各数据通道的数据流量;
[0160]
数据流量统计模块2,用于根据各数据通道的数据流量计算获得总数据流量;
[0161]
仲裁权重分配模块3,用于根据预设总权重、总数据流量以及各数据通道的数据流量计算获得各数据通道的仲裁权重;
[0162]
时间分片模块4,用于按照各仲裁权重对预设监控周期进行时间分片,获得各数据通道对应的分配时间,以使各数据通道按照分配时间获取总线资源。
[0163]
可见,本技术实施例所提供的总线资源分配装置,可以实时监控每路数据通道的数据流量,并通过对各路数据通道的数据流量进行分析,可以在系统运行过程中对不同数据通道的仲裁优先级进行实时调整,使得高速高带宽读写请求的数据通道获得相应的高优先级,低速低带宽读写请求的数据通道获得相应的低优先级,从而实现了总线资源的合理分配,有效地提高了总线资源的利用率,进一步提高了系统性能。
[0164]
作为一种优选实施例,上述数据流量监控模块1可包括:
[0165]
写数据流量监控单元,用于当数据通道为写数据通道时,在预设监控周期内,统计写数据通道内所有写指令对应的写数据流量;
[0166]
读数据流量监控单元,用于当数据通道为读数据通道时,在预设监控周期内,统计读数据通道内所有读指令对应的读数据流量。
[0167]
作为一种优选实施例,上述写数据流量监控单元可具体用于根据写指令确定写数据位宽标志位和写数据长度;根据写数据位宽标志位计算获得写数据位宽;根据写数据长度计算获得写数据突发长度;根据写数据位宽和写数据突发长度计算获得写指令对应的写数据流量;统计所有写指令对应的写数据流量,获得写数据通道在预设监控周期内的写数据流量。
[0168]
作为一种优选实施例,上述读数据流量监控单元可具体用于根据读指令确定读数据位宽标志位和读数据长度;根据读数据位宽标志位计算获得读数据位宽;根据读数据长度计算获得读数据突发长度;根据读数据位宽和读数据突发长度计算获得读指令对应的读数据流量;统计所有读指令对应的读数据流量,获得读数据通道在预设监控周期内的读数据流量。
[0169]
作为一种优选实施例,该总线资源分配装置还可包括带宽判断模块,用于在上述根据预设总权重、总数据流量以及各数据通道的数据流量计算获得各数据通道的仲裁权重之前,根据预设监控周期和总线数据位宽计算获得数据通道最大带宽;判断各数据通道的数据流量是否超出对应的数据通道最大带宽;若否,则执行根据预设总权重、总数据流量以
及各数据通道的数据流量计算获得各数据通道的仲裁权重的步骤。
[0170]
作为一种优选实施例,上述带宽判断模块还可用于当数据通道的数据流量超出对应的数据通道最大带宽时,根据预设总权重计算获得各数据通道的平均仲裁权重;按照平均仲裁权重对预设监控周期进行时间分片,获得各数据通道对应的分配时间,以使各数据通道按照分配时间获取总线资源。
[0171]
作为一种优选实施例,上述时间分片模块4可具体用于当数据通道获取总线资源的时间达到分配时间时,切换至下一数据通道,直至所有数据通道切换完毕。
[0172]
对于本技术提供的装置的介绍请参照上述方法实施例,本技术在此不做赘述。
[0173]
为解决上述技术问题,本技术还提供了一种总线资源分配系统,请参考图6,图6为本技术所提供的一种总线资源分配系统的结构示意图,该总线资源分配设备可包括:
[0174]
存储器10,用于存储计算机程序;
[0175]
处理器20,用于执行计算机程序时可实现如上述任意一种总线资源分配方法的步骤。
[0176]
对于本技术提供的系统的介绍请参照上述方法实施例,本技术在此不做赘述。
[0177]
为解决上述问题,本技术还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如上述任意一种总线资源分配方法的步骤。
[0178]
该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0179]
对于本技术提供的计算机可读存储介质的介绍请参照上述方法实施例,本技术在此不做赘述。
[0180]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0181]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0182]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd

rom或技术领域内所公知的任意其它形式的存储介质中。
[0183]
以上对本技术所提供的技术方案进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提
下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1