CN112579503B - 一种多核异构cpu总线仲裁方法、总线仲裁器及系统 - Google Patents

一种多核异构cpu总线仲裁方法、总线仲裁器及系统 Download PDF

Info

Publication number
CN112579503B
CN112579503B CN202011551247.4A CN202011551247A CN112579503B CN 112579503 B CN112579503 B CN 112579503B CN 202011551247 A CN202011551247 A CN 202011551247A CN 112579503 B CN112579503 B CN 112579503B
Authority
CN
China
Prior art keywords
bus
request
competition
occupation
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011551247.4A
Other languages
English (en)
Other versions
CN112579503A (zh
Inventor
董建
梁志伟
张帆
杨东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Radio And Television Wuzhou Technology Co ltd
Original Assignee
Guangzhou Wu Zhou Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Wu Zhou Information Technology Co ltd filed Critical Guangzhou Wu Zhou Information Technology Co ltd
Priority to CN202011551247.4A priority Critical patent/CN112579503B/zh
Publication of CN112579503A publication Critical patent/CN112579503A/zh
Application granted granted Critical
Publication of CN112579503B publication Critical patent/CN112579503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication

Abstract

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

Description

一种多核异构CPU总线仲裁方法、总线仲裁器及系统
技术领域
本发明涉及总线仲裁技术领域,尤其涉及一种多核异构CPU总线仲裁方法、总线仲裁器及系统。
背景技术
现有的总线仲裁控制技术,一般由参与共享总线的多个主机CPU或者外设提供总线资源请求信号,由总线仲裁器根据各个主机CPU或者外设的既定优先级别或者各个主机CPU或者外设发出请求总线信号的先后次序,结合当前的总线占用状态逻辑,计算出相应的总线仲裁结果,将总线资源分配到具体的主机CPU或者外设。上述总线仲裁机制缺少当前参与总线资源申请的主机CPU实际负载和算力冗余状态为仲裁计算条件,在多个主机CPU均处于算力高负荷的状态下采用上述仲裁方法难以实现在多个主机CPU对总线发生资源竞争时完成算力负载的最优均衡状态的仲裁结果,容易在高负荷工作状态下导致总线阻塞,总线负荷恢复时间较长,进而浪费集群系统中可用的处理时间资源,导致集群系统的性能效率降低,难以发挥其最大效能。
发明内容
本发明实施例提供一种多核异构CPU总线仲裁方法、总线仲裁器及系统,能降低现有集群系统总线阻塞发生的概率,提高集群系统的性能。
本发明一实施例提供一种多核异构CPU总线仲裁方法,包括:在接收第一请求对象发送的总线占用请求,并确定除所述第一请求对象外,还存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,判断所述待处理请求对象的数量;
若仅存在一个所述待处理请求对象,则将所述第一请求对象以及所述待处理请求对象作为总线竞争对象;若存在一个以上的待处理请求对象,则提取所述第一请求对象以及各所述待处理请求对象的运算单元利用率,将运算单元利用率最小的两个请求对象作为所述总线竞争对象;
计算两个所述总线竞争对象的运算单元利用率之差以及两个所述总线竞争对象的运算单元利用率之和,继而计算所述运算单元利用率之差与所述运算单元利用率之和的比值,获得第一比值;
在所述第一比值大于或等于第一阈值时,判断仲裁计数器的计数值所对应的请求对象是否为两个所述总线竞争对象中的任意一个;若是,则判断仲裁计数器的计数值是否小于预设的第一计数值;在判断所述计数值小于所述第一计数值时,将运算单元利用率较小的总线竞争对象选定为总线占用对象;在所述计数值大于或等于预设的第一计数值时,并将所述计数值所对应的总线竞争对象剔除,将另一总线竞争对象选定为总线占用对象;若否,将运算单元利用率较小的总线竞争对象选定为总线占用对象;其中,仲裁计数器的计数值用于表示同一总线竞争对象被连续选定为总线占用对象的次数;
在所述第一比值小于第一阈值时,提取两个总线竞争对象的控制单元负荷系数,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象;
将总线占用权分配至所述总线占用对象,以使所述总线占用对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
进一步的,所述根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象,具体包括:
若,两个所述总线竞争对象的控制单元负荷系数均不大于第一预设负荷系数,则将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象的控制单元负荷系数中任意一总线竞争对象的控制单元负荷系数大于第二预设负荷系数,则将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象中任意一总线竞争对象的控制单元负荷系数大于第一预设负荷系数,且小于或等于第二预设负荷系数,则将所述仲裁计数器的计数值加1并判断仲裁计数器的计数值是否小于或等于预设的第二计数值;若是,将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;若否,将将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象并将所述仲裁计数器的计数值清零。
进一步的,在确定除所述第一请求对象外,不存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,将总线占用权分配至所述第一请求对象,以使所述第一请求对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
在上述方法项实施例的基础上,本发明对应提供了一种总线仲裁器;
一种总线仲裁器,包括:请求对象数量确定模块、总线竞争对象确定模块、总线占用对象确定模块以及总线占用权分配模块;
所述请求对象数量确定模块,用于在接收第一请求对象发送的总线占用请求,并确定除所述第一请求对象外,还存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,判断所述待处理请求对象的数量;
所述总线竞争对象确定模块,用于在存在一个所述待处理请求对象时,将所述第一请求对象以及所述待处理请求对象作为总线竞争对象;在存在一个以上的待处理请求对象时,提取所述第一请求对象以及各所述待处理请求对象的运算单元利用率,将运算单元利用率最小的两个请求对象作为所述总线竞争对象;
所述总线占用对象确定模块,用于计算两个所述总线竞争对象的运算单元利用率之差以及两个所述总线竞争对象的运算单元利用率之和,继而计算所述运算单元利用率之差与所述运算单元利用率之和的比值,获得第一比值;在所述第一比值大于或等于第一阈值时,判断仲裁计数器的计数值所对应的请求对象是否为两个所述总线竞争对象中的任意一个;若是,则判断仲裁计数器的计数值是否小于预设的第一计数值;在判断所述计数值小于所述第一计数值时,将运算单元利用率较小的总线竞争对象选定为总线占用对象;在所述计数值大于或等于预设的第一计数值时,并将所述计数值所对应的总线竞争对象剔除,将另一总线竞争对象选定为总线占用对象;若否,将运算单元利用率较小的总线竞争对象选定为总线占用对象;其中,仲裁计数器的计数值用于表示同一总线竞争对象被连续选定为总线占用对象的次数;在所述第一比值小于第一阈值时,提取两个总线竞争对象的控制单元负荷系数,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象;
所述总线占用权分配模块,用于将总线占用权分配至所述总线占用对象,以使所述总线占用对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
进一步的,所述总线竞争对象确定模块,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象,具体包括:
若,两个所述总线竞争对象的控制单元负荷系数均不大于第一预设负荷系数,则将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象的控制单元负荷系数中任意一总线竞争对象的控制单元负荷系数大于第二预设负荷系数,则将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象中任意一总线竞争对象的控制单元负荷系数大于第一预设负荷系数,且小于或等于第二预设负荷系数,则将所述仲裁计数器的计数值加1并判断仲裁计数器的计数值是否小于或等于预设的第二计数值;若是,将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;若否,将将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象并将所述仲裁计数器的计数值清零。
进一步的,所述总线占用权分配模块,还用于在确定除所述第一请求对象外,不存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,将总线占用权分配至所述第一请求对象,以使所述第一请求对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
在上述实施例的基础上本发明对应提供了一种多核异构CPU总线仲裁系统;
一种多核异构CPU总线仲裁系统,包括本发明上述任意一实施例所提供的总线仲裁器以及若干请求对象;所述总线仲裁器通过预设的数据采集通道采集每一所述请求对象的运算单元利用率以及每一所述请求对象的控制单元负荷系数。
通过实施本发明实施例具有如下有益效果:
本发明实施例提供了一种多核异构CPU总线仲裁方法、总线仲裁器以及系统,所述方法,在进行仲裁时根据请求对象的运算单元利用率以及控制单元负荷系数进行分析计算得到仲裁结果,然后进行总线占用权分配。相比与现有的按预设优先级进行总线仲裁的方法,本发明充分考虑了集群系统中,各请求对象的运算单元利用率以及控制单元负荷系数,降低了在高负荷工作状态下总线阻塞的概率,提高了集群系统的性能。
附图说明
图1是本发明一实施例提供的一种多核异构CPU总线仲裁方法的流程示意图。
图2是本发明一实施例提供的一种总线仲裁器的结构示意图。
图3是本发明一实施例提供的一种多核异构CPU总线仲裁系统的系统架构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明一实施例提供了一种多核异构CPU总线仲裁方法,包括如下步骤:
步骤S101:在接收第一请求对象发送的总线占用请求,并确定除所述第一请求对象外,还存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,判断所述待处理请求对象的数量;
步骤S102:若仅存在一个所述待处理请求对象,则将所述第一请求对象以及所述待处理请求对象作为总线竞争对象;若存在一个以上的待处理请求对象,则提取所述第一请求对象以及各所述待处理请求对象的运算单元利用率,将运算单元利用率最小的两个请求对象作为所述总线竞争对象;
步骤S103:计算两个所述总线竞争对象的运算单元利用率之差以及两个所述总线竞争对象的运算单元利用率之和,继而计算所述运算单元利用率之差与所述运算单元利用率之和的比值,获得第一比值;在所述第一比值大于或等于第一阈值时,判断仲裁计数器的计数值所对应的请求对象是否为两个所述总线竞争对象中的任意一个;若是,则判断仲裁计数器的计数值是否小于预设的第一计数值;在判断所述计数值小于所述第一计数值时,将运算单元利用率较小的总线竞争对象选定为总线占用对象;在所述计数值大于或等于预设的第一计数值时,并将所述计数值所对应的总线竞争对象剔除,将另一总线竞争对象选定为总线占用对象;若否,将运算单元利用率较小的总线竞争对象选定为总线占用对象;其中,仲裁计数器的计数值用于表示同一总线竞争对象被连续选定为总线占用对象的次数;在所述第一比值小于第一阈值时,提取两个总线竞争对象的控制单元负荷系数,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象;
步骤S104:将总线占用权分配至所述总线占用对象,以使所述总线占用对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
对于步骤S101、上述请求对象可以为多核异构的CPU主机或外设,每一请求对象都设置有运算单元(ALU)以及控制单元(CU),在接收一总线占用请求时,先判断是否除当前请求之外,还有其他未分配总线占用权的待处理请求对象,如果有进一步判断待处理请求对象的数量。
对于步骤S102、如果待处理请求的数量只有一个,那么加上当前的请求对象(及上述第一请求对象)那么此时就有两个请求对象需要竞争总线占用权,那么此时将第一请求对象和待请求对象,作为两个总线竞争对象。如果待处理请求对象在1个以上假设是两个,那么此时加上第一请求对象一共有3个请求对象需要竞争总线占用权。此时,运算单元利用率最小的两个请求对象作为总线竞争对象,将另一个请求对象剔除,不让其参与本次仲裁时总线占用权的竞争。
对于步骤S103、在一个优选的实施例中,所述根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象,具体包括:
若,两个所述总线竞争对象的控制单元负荷系数均不大于第一预设负荷系数,则将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象的控制单元负荷系数中任意一总线竞争对象的控制单元负荷系数大于第二预设负荷系数,则将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象中任意一总线竞争对象的控制单元负荷系数大于第一预设负荷系数,且小于或等于第二预设负荷系数,则将所述仲裁计数器的计数值加1并判断仲裁计数器的计数值是否小于或等于预设的第二计数值;若是,将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;若否,将将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象并将所述仲裁计数器的计数值清零。
对于步骤S104、在一个优选的实施例中,还包括在确定除所述第一请求对象外,不存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,将总线占用权分配至所述第一请求对象,以使所述第一请求对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
为更好的说明本发明的内容,以下例举一实际的仲裁场景,对本申请的技术方案进行详细的说明:
仲裁器包含:计算运算单元利用率的比较器Cu、计算控制单元负荷系数的比较器CI以及计数器Ca。计数器Ca用于计算同一个请求对象连续获得总线占用权的次数,例如:一个请求设备,在连续的4次总线仲裁时,都获得了总线占用权则Ca的值为3,一旦连续中断,Ca的计数值就清零并重新计算,例如在连续4次总线仲裁时,一个请求设备A在前三次都获得了总线占用权,而第四次仲裁时由请求设备B获得了总线占用权,那么在第三次总线仲裁结束后,Ca的计数值为3,表示请求设备A连续3次获得了总线占用权,当在第四次总线仲裁结束后Ca的计数值先清零,然后变为1,表示请求设备A取得了1次总线占用权。
所述总线上每一个多核异构CPU(请求对象)均无固定总线申请的固定优先权,任何其中一个请求对象,例如CPU A可对总线发出assert REQ#信号(发出总线占用请求),以准备进行所需的数据传输通道资源,仲裁器判断系统总线当前占用状态,若当前总线未被其他任何CPU占用,且未收到除CPU A之外的其他CPU对总线assert REQ#信号,那么此时直接对CPU A发送assert GNT#信号,响应CPU A的总线占用请求,直至获得总线占用权的CPUA完成当前最小有效期内(即上述有效传输周期)的传输后,移除当前CPU A的GNT#信号,释放总线。需要说明的是在移除当前CPU A的GNT#信号之前,总线拒绝任何其他CPU的assertREQ#信号。
如果当接收CPU A的assert GNT#信号时,还存在一个请求对象如CPU B对的assert REQ#信号,那么将CPU A和CPU B当做两个总线竞争对象。
此时通过总仲裁器中计算运算单元利用率的比较器Cu,判断CPU A和CPU B的运算单元利用率UR数值;
若得到ΔUR/∑UR≥X,(ΔUR为CPU A和CPU B的运算单元利用率之差,∑UR为CPUA和CPU B的运算单元利用率之和,X为上述第一阈值),则判断Ca的计数值所对应请求对象是否为CPU A或CPU B;需要说明的是第一阈值的具体取值会影响CPU A和CPU B的利用率差值的收敛速度,其具体取值可以根据实际情况进行设定。
如果是,说明CPU A或CPU B中的其中一个竞争对象,有可能已经连续获得几次总线占用权了,此时为了防止某一请求对象一直占用总线资源,而其他请求对象一直得不到响应。需要进一步判断Ca的计数值是否小于的第一计数值Y,如果Ca的计数值小于的第一计数值Y,那么说明CPU A或CPU B连续获得总线占用权的次数还在控制范围内,此时按正常的处理方式,将运算单元利用率较小的总线竞争对象作为最终的总线占用对象,获得总线占用权。例如CPU A当前的运算单元利用率较小,那么仲裁器向CPU A反馈assert GNT#信号,CPU A获得总线占用权,直至获得总线占用权的CPU A完成当前最小有效期内(即上述有效传输周期)的传输后,移除当前CPU A的GNT#信号,释放总线。需要说明的是在移除当前CPUA的GNT#信号之前,总线拒绝任何其他CPU的assert REQ#信号。
如果Ca的计数值大于或等于的第一计数值Y,那么说明CPU A或CPU B连续获得总线占用权的次数已经达到了最高值,如果在本次仲裁结束的结果与上次相同的话,会出现仲裁不均衡的现象。所以此时,无需进行运算单元利用率的判断,直接将Ca的计数值所对应的竞争对象剔除,将另一个竞争对象作为最终的总线占用对象,获得总线占用权。例如假设Ca的计数值对应的请求设备是CPU A,且计数值已经超过了第一计数值Y,那说明CPU A已经在连续Y次的仲裁中获取到了总线占用权,此时无论CPU A运算单元利用率的大小,直接剔除掉CPU A,仲裁器直接向CPU B反馈assert GNT#信号,CPU B获得总线占用权。直至获得总线占用权的CPU B完成当前最小有效期内(即上述有效传输周期)的传输后,移除当前CPU B的GNT#信号,释放总线。需要说明的是在移除当前CPU B的GNT#信号之前,总线拒绝任何其他CPU的assert REQ#信号。
如果否,说明上一次仲裁时,取得总线占用权的不是CPU A或CPU B,那么就不会出现仲裁不均衡的问题,此时直接将运算单元利用率较小的总线竞争对象作为最终的总线占用对象,获得总线占用权。例如CPU A当前的运算单元利用率较小,那么仲裁器向CPU A反馈assert GNT#信号,CPU A获得总线占用权。直至获得总线占用权的CPU A完成当前最小有效期内(即上述有效传输周期)的传输后,移除当前CPU A的GNT#信号,释放总线。需要说明的是在移除当前CPU A的GNT#信号之前,总线拒绝任何其他CPU的assert REQ#信号。需要说明的是第一计数值Y的具体取值可以根据实际情况进行设定。若得到ΔUR/∑UR<X,那么此时需要启动计算控制单元负荷系数的比较器CI对CPU A和CPU B的控制单元负荷系数进行分析,记CPU A的负荷系数为LiA,CPU B的负荷系数为LiB
根据CPU A和CPU B的控制单元负荷系数进行选定和分配;
具体分以下三大情况:
一、LiA、LiB均不大于第一预设负荷系数(优选的第一预设负荷系数可以为0.7),例如LiA<LiB≤0.7;那么此时将控制单元负荷系数较小的总线竞争对象CPU A,选定为总线占用对象,仲裁器对向CPU A反馈assert GNT#信号,CPU A获得总线占用权。直至获得总线占用权的CPU A完成当前最小有效期内(即上述有效传输周期)的传输后,移除当前CPU A的GNT#信号,释放总线。需要说明的是在移除当前CPU A的GNT#信号之前,总线拒绝任何其他CPU的assert REQ#信号。
二、LiA、LiB中的任意一个大于第二预设负荷系数(优选的第一预设负荷系数可以为5);例如LiA<5<LiB,那么此时将控制单元负荷系数较大的总线竞争对象CPU B,选定为总线占用对象,仲裁器对向CPU B反馈assert GNT#信号,CPU B获得总线占用权。直至获得总线占用权的CPU B完成当前最小有效期内(即上述有效传输周期)的传输后,移除当前CPUB的GNT#信号,释放总线。需要说明的是在移除当前CPU B的GNT#信号之前,总线拒绝任何其他CPU的assert REQ#信号。
三、LiA、LiB中有任意一个大于第一预设负荷系数,且小于或等于第二预设负荷系数;例如:LiA<0.7<LiB≤5;
那么此时将Ca的计数值加1,然后判断Ca的计数值是否小于或等于第二计数值J,如果是,将控制单元负荷系数较小的总线竞争对象CPU A,选定为总线占用对象,仲裁器对向CPU A反馈assert GNT#信号,CPU A获得总线占用权。直至获得总线占用权的CPU A完成当前最小有效期内(即上述有效传输周期)的传输后,移除当前CPU A的GNT#信号,释放总线。需要说明的是在移除当前CPU A的GNT#信号之前,总线拒绝任何其他CPU的assert REQ#信号。
否则,将控制单元负荷系数较大的总线竞争对象CPU B,选定为总线占用对象,仲裁器对向CPU B反馈assert GNT#信号,CPU B获得总线占用权。同时将仲裁计数器的计数值清零。至此完成整个多核异构CPU总线仲裁方法。直至获得总线占用权的CPU B完成当前最小有效期内(即上述有效传输周期)的传输后,移除当前CPU B的GNT#信号,释放总线。需要说明的是在移除当前CPU B的GNT#信号之前,总线拒绝任何其他CPU的assert REQ#信号。需要说明的是第二计数值J的具体取值可以根据实际情况进行设定。如图2所示,在上述实施例的基础上,本发明对应提供了一种总线仲裁器,包括:请求对象数量确定模块、总线竞争对象确定模块、总线占用对象确定模块以及总线占用权分配模块;
所述请求对象数量确定模块,用于在接收第一请求对象发送的总线占用请求,并确定除所述第一请求对象外,还存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,判断所述待处理请求对象的数量;
所述总线竞争对象确定模块,用于在存在一个所述待处理请求对象时,将所述第一请求对象以及所述待处理请求对象作为总线竞争对象;在存在一个以上的待处理请求对象时,提取所述第一请求对象以及各所述待处理请求对象的运算单元利用率,将运算单元利用率最小的两个请求对象作为所述总线竞争对象;
所述总线占用对象确定模块,用于计算两个所述总线竞争对象的运算单元利用率之差以及两个所述总线竞争对象的运算单元利用率之和,继而计算所述运算单元利用率之差与所述运算单元利用率之和的比值,获得第一比值;在所述第一比值大于或等于第一阈值时,判断仲裁计数器的计数值所对应的请求对象是否为两个所述总线竞争对象中的任意一个;若是,则判断仲裁计数器的计数值是否小于预设的第一计数值;在判断所述计数值小于所述第一计数值时,将运算单元利用率较小的总线竞争对象选定为总线占用对象;在所述计数值大于或等于预设的第一计数值时,并将所述计数值所对应的总线竞争对象剔除,将另一总线竞争对象选定为总线占用对象;若否,将运算单元利用率较小的总线竞争对象选定为总线占用对象;其中,仲裁计数器的计数值用于表示同一总线竞争对象被连续选定为总线占用对象的次数;在所述第一比值小于第一阈值时,提取两个总线竞争对象的控制单元负荷系数,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象;
所述总线占用权分配模块,用于将总线占用权分配至所述总线占用对象,以使所述总线占用对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
需说明的是,以上所描述的各个模块是示意性的,可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,附图中所显示的各模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
如图3所示,本发明另一实施例提供了一种多核异构CPU总线仲裁系统,包括本发明任意一项所述的总线仲裁器以及若干请求对象;所述总线仲裁器通过预设的数据采集通道采集每一所述请求对象的运算单元利用率以及每一所述请求对象的控制单元负荷系数。
在本发明中参与总线竞争的多核异构CPU A和CPU B数量可以扩展至更多数量,相应地仲裁系统包含可将总线上所有多核异构CPU获取其内部运算单元(ALU)利用率UR和控制单元负荷系数Li的数据传输至总线仲裁器的数据采集通道,且每个请求对象均独立设置有与数据总线进行数据交互的数据通道,这样每一个请求对象可不受总线占用权的影响;通过数据总线向总线仲裁器发送assert REQ#信号并接收裁器对的assert GNT#信号。
通过实施本发明实施例具有如下有益效果:
1、总线的占用权分配不再仅依据参与共享总线的多个主机CPU或者外设的既定优先级别或者各个主机CPU或者外设发出请求总线信号的先后次序和占用状态逻辑输出相应的总线仲裁结果。而是增加和参与竞争总线的CPU的具体负荷状态作为综合判断分析。
2、针对多核异构CPU的计算任务和控制机制特性进行总线占用权的分配,大大提高集群系统多任务并行处理状态下的资源利用率。
3、易于扩展部署更多的多核异构CPU以增加集群总体算力性能容量,无需增加额外的仲裁控制通信开销,总线仲裁响应速度不受竞争总线CPU数量的影响。
4、易于实现在较大规模的集群系统中增加部署更多数量的备份仲裁器。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (7)

1.一种多核异构CPU总线仲裁方法,其特征在于,包括:
在接收第一请求对象发送的总线占用请求,并确定除所述第一请求对象外,还存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,判断所述待处理请求对象的数量;
若仅存在一个所述待处理请求对象,则将所述第一请求对象以及所述待处理请求对象作为总线竞争对象;若存在一个以上的待处理请求对象,则提取所述第一请求对象以及各所述待处理请求对象的运算单元利用率,将运算单元利用率最小的两个请求对象作为所述总线竞争对象;
计算两个所述总线竞争对象的运算单元利用率之差以及两个所述总线竞争对象的运算单元利用率之和,继而计算所述运算单元利用率之差与所述运算单元利用率之和的比值,获得第一比值;
在所述第一比值大于或等于第一阈值时,判断仲裁计数器的计数值所对应的请求对象是否为两个所述总线竞争对象中的任意一个;若是,则判断仲裁计数器的计数值是否小于预设的第一计数值;在判断所述计数值小于所述第一计数值时,将运算单元利用率较小的总线竞争对象选定为总线占用对象;在所述计数值大于或等于预设的第一计数值时,并将所述计数值所对应的总线竞争对象剔除,将另一总线竞争对象选定为总线占用对象;若否,将运算单元利用率较小的总线竞争对象选定为总线占用对象;其中,仲裁计数器的计数值用于表示同一总线竞争对象被连续选定为总线占用对象的次数;
在所述第一比值小于第一阈值时,提取两个总线竞争对象的控制单元负荷系数,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象;
将总线占用权分配至所述总线占用对象,以使所述总线占用对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
2.如权利要求1所述的多核异构CPU总线仲裁方法,其特征在于,所述根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象,具体包括:
若,两个所述总线竞争对象的控制单元负荷系数均不大于第一预设负荷系数,则将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象的控制单元负荷系数中任意一总线竞争对象的控制单元负荷系数大于第二预设负荷系数,则将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象中任意一总线竞争对象的控制单元负荷系数大于第一预设负荷系数,且小于或等于第二预设负荷系数,则将所述仲裁计数器的计数值加1并判断仲裁计数器的计数值是否小于或等于预设的第二计数值;若是,将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;若否,将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象并将所述仲裁计数器的计数值清零。
3.如权利要求1所述的多核异构CPU总线仲裁方法,其特征在于,还包括:在确定除所述第一请求对象外,不存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,将总线占用权分配至所述第一请求对象,以使所述第一请求对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
4.一种总线仲裁器,其特征在于,包括:请求对象数量确定模块、总线竞争对象确定模块、总线占用对象确定模块以及总线占用权分配模块;
所述请求对象数量确定模块,用于在接收第一请求对象发送的总线占用请求,并确定除所述第一请求对象外,还存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,判断所述待处理请求对象的数量;
所述总线竞争对象确定模块,用于在存在一个所述待处理请求对象时,将所述第一请求对象以及所述待处理请求对象作为总线竞争对象;在存在一个以上的待处理请求对象时,提取所述第一请求对象以及各所述待处理请求对象的运算单元利用率,将运算单元利用率最小的两个请求对象作为所述总线竞争对象;
所述总线占用对象确定模块,用于计算两个所述总线竞争对象的运算单元利用率之差以及两个所述总线竞争对象的运算单元利用率之和,继而计算所述运算单元利用率之差与所述运算单元利用率之和的比值,获得第一比值;在所述第一比值大于或等于第一阈值时,判断仲裁计数器的计数值所对应的请求对象是否为两个所述总线竞争对象中的任意一个;若是,则判断仲裁计数器的计数值是否小于预设的第一计数值;在判断所述计数值小于所述第一计数值时,将运算单元利用率较小的总线竞争对象选定为总线占用对象;在所述计数值大于或等于预设的第一计数值时,并将所述计数值所对应的总线竞争对象剔除,将另一总线竞争对象选定为总线占用对象;若否,将运算单元利用率较小的总线竞争对象选定为总线占用对象;其中,仲裁计数器的计数值用于表示同一总线竞争对象被连续选定为总线占用对象的次数;在所述第一比值小于第一阈值时,提取两个总线竞争对象的控制单元负荷系数,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象;
所述总线占用权分配模块,用于将总线占用权分配至所述总线占用对象,以使所述总线占用对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
5.如权利要求4所述的总线仲裁器,其特征在于,所述总线竞争对象确定模块,根据两个所述总线竞争对象的控制单元负荷系数的数值范围选定总线占用对象,具体包括:
若,两个所述总线竞争对象的控制单元负荷系数均不大于第一预设负荷系数,则将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象的控制单元负荷系数中任意一总线竞争对象的控制单元负荷系数大于第二预设负荷系数,则将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象;
若,两个所述总线竞争对象中任意一总线竞争对象的控制单元负荷系数大于第一预设负荷系数,且小于或等于第二预设负荷系数,则将所述仲裁计数器的计数值加1并判断仲裁计数器的计数值是否小于或等于预设的第二计数值;若是,将控制单元负荷系数较小的总线竞争对象选定为所述总线占用对象;若否,将控制单元负荷系数较大的总线竞争对象选定为所述总线占用对象并将所述仲裁计数器的计数值清零。
6.如权利要求5所述的总线仲裁器,其特征在于,所述总线占用权分配模块,还用于在确定除所述第一请求对象外,不存在已发起总线占用请求但未取得总线占用权的待处理请求对象时,将总线占用权分配至所述第一请求对象,以使所述第一请求对象在获取所述总线占用权后在预设的有效传输周期内进行数据传输。
7.一种多核异构CPU总线仲裁系统,其特征在于,包括如权利要求4-6任意一项所述的总线仲裁器以及若干请求对象;所述总线仲裁器通过预设的数据采集通道采集每一所述请求对象的运算单元利用率以及每一所述请求对象的控制单元负荷系数。
CN202011551247.4A 2020-12-24 2020-12-24 一种多核异构cpu总线仲裁方法、总线仲裁器及系统 Active CN112579503B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011551247.4A CN112579503B (zh) 2020-12-24 2020-12-24 一种多核异构cpu总线仲裁方法、总线仲裁器及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011551247.4A CN112579503B (zh) 2020-12-24 2020-12-24 一种多核异构cpu总线仲裁方法、总线仲裁器及系统

Publications (2)

Publication Number Publication Date
CN112579503A CN112579503A (zh) 2021-03-30
CN112579503B true CN112579503B (zh) 2022-04-08

Family

ID=75139686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011551247.4A Active CN112579503B (zh) 2020-12-24 2020-12-24 一种多核异构cpu总线仲裁方法、总线仲裁器及系统

Country Status (1)

Country Link
CN (1) CN112579503B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010934A (ja) * 1998-06-26 2000-01-14 Fujitsu Ltd マルチcpuシステムのバス調停システム
CN1577304A (zh) * 2003-06-26 2005-02-09 三星电子株式会社 动态总线仲裁方法和总线仲裁器
KR20090118610A (ko) * 2008-05-14 2009-11-18 삼성전자주식회사 트랜잭션들을 그룹화하는 버스 중재기, 이를 포함하는 버스장치 및 시스템
CN102404183A (zh) * 2010-09-07 2012-04-04 中兴通讯股份有限公司 仲裁方法和仲裁器
JP2012079165A (ja) * 2010-10-04 2012-04-19 Canon Inc バス調停装置、バス調停方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6804736B2 (en) * 2000-11-30 2004-10-12 Hewlett-Packard Development Company, L.P. Bus access arbitration based on workload
US20110113172A1 (en) * 2009-11-12 2011-05-12 Himax Technologies Limited Utilization-enhanced shared bus system and bus arbitration method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000010934A (ja) * 1998-06-26 2000-01-14 Fujitsu Ltd マルチcpuシステムのバス調停システム
CN1577304A (zh) * 2003-06-26 2005-02-09 三星电子株式会社 动态总线仲裁方法和总线仲裁器
KR20090118610A (ko) * 2008-05-14 2009-11-18 삼성전자주식회사 트랜잭션들을 그룹화하는 버스 중재기, 이를 포함하는 버스장치 및 시스템
CN102404183A (zh) * 2010-09-07 2012-04-04 中兴通讯股份有限公司 仲裁方法和仲裁器
JP2012079165A (ja) * 2010-10-04 2012-04-19 Canon Inc バス調停装置、バス調停方法

Also Published As

Publication number Publication date
CN112579503A (zh) 2021-03-30

Similar Documents

Publication Publication Date Title
US7577780B2 (en) Fine-grained bandwidth control arbiter and the method thereof
US5088024A (en) Round-robin protocol method for arbitrating access to a shared bus arbitration providing preference to lower priority units after bus access by a higher priority unit
US5623672A (en) Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment
US6363445B1 (en) Method of bus arbitration using requesting device bandwidth and priority ranking
US20110072178A1 (en) Data processing apparatus and a method for setting priority levels for transactions
US6519666B1 (en) Arbitration scheme for optimal performance
US5274774A (en) First-come first-serve arbitration protocol
CN107766267B (zh) 一种i2c总线的仲裁方法及系统
US7539806B2 (en) Arbitrator and its arbitration method
US7065595B2 (en) Method and apparatus for bus access allocation
CN112579503B (zh) 一种多核异构cpu总线仲裁方法、总线仲裁器及系统
US7650451B2 (en) Arbiter circuit
US6571306B1 (en) Bus request mechanism for bus master which is parked on a shared bus
CN113515473A (zh) 一种QoS控制方法、总线系统、计算装置和存储介质
US6889283B2 (en) Method and system to promote arbitration priority in a buffer queue
CN112463673B (zh) 一种片上总线、及用于片上总线的服务质量仲裁方法、装置
KR100973419B1 (ko) 버스 중재 방법 및 장치
CN1322440C (zh) 多设备系统中的通信子系统及其通信方法
CN114546908A (zh) 总线带宽自适应单元、方法及芯片
CN111797050A (zh) 片上系统
CN115269467B (zh) 一种总线仲裁的方法、装置、存储介质及电子设备
JP2000250853A (ja) バス調整制御装置
US6449672B1 (en) PCI device arbiter
TWI425363B (zh) Adjustable Priority System Resource Arbitration Method
CN101324871A (zh) 无等待动态优先级的pci总线仲裁扩展器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 510535 Room 401, building C2, 11 Kaiyuan Avenue, Huangpu District, Guangzhou City, Guangdong Province

Patentee after: Guangzhou Radio and television Wuzhou Technology Co.,Ltd.

Address before: 510535 Room 401, building C2, 11 Kaiyuan Avenue, Huangpu District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU WU ZHOU INFORMATION TECHNOLOGY CO.,LTD.

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A multi-core heterogeneous CPU bus arbitration method, bus arbiter and system

Effective date of registration: 20230117

Granted publication date: 20220408

Pledgee: Industrial and Commercial Bank of China Limited Guangzhou Tianhe Sub-branch

Pledgor: Guangzhou Radio and television Wuzhou Technology Co.,Ltd.

Registration number: Y2023440000015