一种多核异构CPU总线仲裁方法、总线仲裁器及系统技术方案

技术编号:27877407 阅读:15 留言:0更新日期:2021-03-31 00:58
本发明专利技术公开了一种多核异构CPU总线仲裁方法、总线仲裁器以及系统,所述方法,在进行仲裁时根据请求对象的运算单元利用率以及控制单元负荷系数进行分析计算得到仲裁结果,然后进行总线占用权分配。相比与现有的按预设优先级进行总线仲裁的方法,本发明专利技术充分考虑了集群系统中,各请求对象的运算单元利用率以及控制单元负荷系数,降低了在高负荷工作状态下总线阻塞的概率,提高了集群系统的性能。

【技术实现步骤摘要】
一种多核异构CPU总线仲裁方法、总线仲裁器及系统
本专利技术涉及总线仲裁
,尤其涉及一种多核异构CPU总线仲裁方法、总线仲裁器及系统。
技术介绍
现有的总线仲裁控制技术,一般由参与共享总线的多个主机CPU或者外设提供总线资源请求信号,由总线仲裁器根据各个主机CPU或者外设的既定优先级别或者各个主机CPU或者外设发出请求总线信号的先后次序,结合当前的总线占用状态逻辑,计算出相应的总线仲裁结果,将总线资源分配到具体的主机CPU或者外设。上述总线仲裁机制缺少当前参与总线资源申请的主机CPU实际负载和算力冗余状态为仲裁计算条件,在多个主机CPU均处于算力高负荷的状态下采用上述仲裁方法难以实现在多个主机CPU对总线发生资源竞争时完成算力负载的最优均衡状态的仲裁结果,容易在高负荷工作状态下导致总线阻塞,总线负荷恢复时间较长,进而浪费集群系统中可用的处理时间资源,导致集群系统的性能效率降低,难以发挥其最大效能。
技术实现思路
本专利技术实施例提供一种多核异构CPU总线仲裁方法、总线仲裁器及系统,能降低现有集群系统总线阻塞发生的概率,提高集群系统的性能。本专利技术一实施例提供一种多核异构CPU总线仲裁方法,包括:在接收第一请求对象发送的总线占用请求,并确定除所述第一请求对象外,还存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,判断所述待处理请求对象的数量;若仅存在一个所述待处理请求对象,则将所述第一请求对象以及所述待处理请求对象作为总线竞争对象;若存在一个以上的待处理请求对象,则提取所述第一请求对象以及各所述待处理请求对象的运算单元利用率,将运算单元利用率最小的两个请求对象作为所述总线竞争对象;计算两个所述总线竞争对象的运算单元利用率之差以及两个所述总线竞争对象的运算单元利用率之和,继而计算所述运算单元利用率之差与所述运算单元利用率之和的比值,获得第一比值;在所述第一比值大于或等于第一阈值时,判断仲裁计数器的计数值所对应的请求对象是否为两个所述总线竞争对象中的任意一个;若是,则判断仲裁计数器的计数值是否小于预设的第一计数值;在判断所述计数值小于所述第一计数值时,将运算单元利用率较小的总线竞争对象选定为总线占用对象;在所述计数值大于或等于预设的第一计数值时,并将所述计数值所对应的总线竞争对象剔除,将另一总线竞争对象选定为总线占用对象;若否,将运算单元利用率较小的总线竞争对象选定为总线占用对象;其中,仲裁计数器的计数值用于表示同一总线竞争对象被连续选定为总线占用对象的次数;在所述第一比值小于第一阈值时,提取两个总线竞争对象的控制单元负荷系数,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象;将总线占用权分配至所述总线占用对象,以使所述总线占用对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。进一步的,所述根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象,具体包括:若,两个所述总线竞争对象的控制单元负荷系数均不大于第一预设负荷系数,则将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;若,两个所述总线竞争对象的控制单元负荷系数中任意一总线竞争对象的控制单元负荷系数大于第二预设负荷系数,则将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象;若,两个所述总线竞争对象中任意一总线竞争对象的控制单元负荷系数大于第一预设负荷系数,且小于或等于第二预设负荷系数,则将所述仲裁计数器的计数值加1并判断仲裁计数器的计数值是否小于或等于预设的第二计数值;若是,将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;若否,将将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象并将所述仲裁计数器的计数值清零。进一步的,在确定除所述第一请求对象外,不存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,将总线占用权分配至所述第一请求对象,以使所述第一请求对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。在上述方法项实施例的基础上,本专利技术对应提供了一种总线仲裁器;一种总线仲裁器,包括:请求对象数量确定模块、总线竞争对象确定模块、总线占用对象确定模块以及总线占用权分配模块;所述请求对象数量确定模块,用于在接收第一请求对象发送的总线占用请求,并确定除所述第一请求对象外,还存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,判断所述待处理请求对象的数量;所述总线竞争对象确定模块,用于在存在一个所述待处理请求对象时,将所述第一请求对象以及所述待处理请求对象作为总线竞争对象;在存在一个以上的待处理请求对象时,提取所述第一请求对象以及各所述待处理请求对象的运算单元利用率,将运算单元利用率最小的两个请求对象作为所述总线竞争对象;所述总线占用对象确定模块,用于计算两个所述总线竞争对象的运算单元利用率之差以及两个所述总线竞争对象的运算单元利用率之和,继而计算所述运算单元利用率之差与所述运算单元利用率之和的比值,获得第一比值;在所述第一比值大于或等于第一阈值时,判断仲裁计数器的计数值所对应的请求对象是否为两个所述总线竞争对象中的任意一个;若是,则判断仲裁计数器的计数值是否小于预设的第一计数值;在判断所述计数值小于所述第一计数值时,将运算单元利用率较小的总线竞争对象选定为总线占用对象;在所述计数值大于或等于预设的第一计数值时,并将所述计数值所对应的总线竞争对象剔除,将另一总线竞争对象选定为总线占用对象;若否,将运算单元利用率较小的总线竞争对象选定为总线占用对象;其中,仲裁计数器的计数值用于表示同一总线竞争对象被连续选定为总线占用对象的次数;在所述第一比值小于第一阈值时,提取两个总线竞争对象的控制单元负荷系数,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象;所述总线占用权分配模块,用于将总线占用权分配至所述总线占用对象,以使所述总线占用对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。进一步的,所述总线竞争对象确定模块,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象,具体包括:若,两个所述总线竞争对象的控制单元负荷系数均不大于第一预设负荷系数,则将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;若,两个所述总线竞争对象的控制单元负荷系数中任意一总线竞争对象的控制单元负荷系数大于第二预设负荷系数,则将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象;若,两个所述总线竞争对象中任意一总线竞争对象的控制单元负荷系数大于第一预设负荷系数,且小于或等于第二预设负荷系数,则将所述仲裁计数器的计数值加1并判断仲裁计数器的计数值是否小于或等于预设的第二计数值;若是,将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;若否,将将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象并将所述仲裁计数器的计数值清零。进一步的,所述总线占用权分配模块,还用于在确本文档来自技高网...

【技术保护点】
1.一种多核异构CPU总线仲裁方法,其特征在于,包括:/n在接收第一请求对象发送的总线占用请求,并确定除所述第一请求对象外,还存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,判断所述待处理请求对象的数量;/n若仅存在一个所述待处理请求对象,则将所述第一请求对象以及所述待处理请求对象作为总线竞争对象;若存在一个以上的待处理请求对象,则提取所述第一请求对象以及各所述待处理请求对象的运算单元利用率,将运算单元利用率最小的两个请求对象作为所述总线竞争对象;/n计算两个所述总线竞争对象的运算单元利用率之差以及两个所述总线竞争对象的运算单元利用率之和,继而计算所述运算单元利用率之差与所述运算单元利用率之和的比值,获得第一比值;/n在所述第一比值大于或等于第一阈值时,判断仲裁计数器的计数值所对应的请求对象是否为两个所述总线竞争对象中的任意一个;若是,则判断仲裁计数器的计数值是否小于预设的第一计数值;在判断所述计数值小于所述第一计数值时,将运算单元利用率较小的总线竞争对象选定为总线占用对象;在所述计数值大于或等于预设的第一计数值时,并将所述计数值所对应的总线竞争对象剔除,将另一总线竞争对象选定为总线占用对象;若否,将运算单元利用率较小的总线竞争对象选定为总线占用对象;其中,仲裁计数器的计数值用于表示同一总线竞争对象被连续选定为总线占用对象的次数;/n在所述第一比值小于第一阈值时,提取两个总线竞争对象的控制单元负荷系数,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象;/n将总线占用权分配至所述总线占用对象,以使所述总线占用对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。/n...

【技术特征摘要】
1.一种多核异构CPU总线仲裁方法,其特征在于,包括:
在接收第一请求对象发送的总线占用请求,并确定除所述第一请求对象外,还存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,判断所述待处理请求对象的数量;
若仅存在一个所述待处理请求对象,则将所述第一请求对象以及所述待处理请求对象作为总线竞争对象;若存在一个以上的待处理请求对象,则提取所述第一请求对象以及各所述待处理请求对象的运算单元利用率,将运算单元利用率最小的两个请求对象作为所述总线竞争对象;
计算两个所述总线竞争对象的运算单元利用率之差以及两个所述总线竞争对象的运算单元利用率之和,继而计算所述运算单元利用率之差与所述运算单元利用率之和的比值,获得第一比值;
在所述第一比值大于或等于第一阈值时,判断仲裁计数器的计数值所对应的请求对象是否为两个所述总线竞争对象中的任意一个;若是,则判断仲裁计数器的计数值是否小于预设的第一计数值;在判断所述计数值小于所述第一计数值时,将运算单元利用率较小的总线竞争对象选定为总线占用对象;在所述计数值大于或等于预设的第一计数值时,并将所述计数值所对应的总线竞争对象剔除,将另一总线竞争对象选定为总线占用对象;若否,将运算单元利用率较小的总线竞争对象选定为总线占用对象;其中,仲裁计数器的计数值用于表示同一总线竞争对象被连续选定为总线占用对象的次数;
在所述第一比值小于第一阈值时,提取两个总线竞争对象的控制单元负荷系数,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象;
将总线占用权分配至所述总线占用对象,以使所述总线占用对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。


2.如权利要求1所述的多核异构CPU总线仲裁方法,其特征在于,所述根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象,具体包括:
若,两个所述总线竞争对象的控制单元负荷系数均不大于第一预设负荷系数,则将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象的控制单元负荷系数中任意一总线竞争对象的控制单元负荷系数大于第二预设负荷系数,则将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象中任意一总线竞争对象的控制单元负荷系数大于第一预设负荷系数,且小于或等于第二预设负荷系数,则将所述仲裁计数器的计数值加1并判断仲裁计数器的计数值是否小于或等于预设的第二计数值;若是,将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;若否,将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象并将所述仲裁计数器的计数值清零。


3.如权利要求1所述的多核异构CPU总线仲裁方法,其特征在于,还包括:在确定除所述第一请求对象外,不存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,将总线占用权分配至所述第一请求对象,以使所述第一请求对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。


4.一种总线仲裁器,其特征在于,包括:请求对象数量确定模块、总线竞争对象确定模块、总线占用对象确定模块以及总线占用权分配模块;
所述请求对象数量确定模块,用于在接收第一请求对象发送的总线占用请求,并...

【专利技术属性】
技术研发人员:董建梁志伟张帆杨东
申请(专利权)人:广州五舟科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1