WO2024027133A1 - 优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片 - Google Patents

优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片 Download PDF

Info

Publication number
WO2024027133A1
WO2024027133A1 PCT/CN2023/076176 CN2023076176W WO2024027133A1 WO 2024027133 A1 WO2024027133 A1 WO 2024027133A1 CN 2023076176 W CN2023076176 W CN 2023076176W WO 2024027133 A1 WO2024027133 A1 WO 2024027133A1
Authority
WO
WIPO (PCT)
Prior art keywords
group
polling
arbitration
priority
input ports
Prior art date
Application number
PCT/CN2023/076176
Other languages
English (en)
French (fr)
Inventor
田佩佳
蔡凯
张雨生
闫超
Original Assignee
声龙(新加坡)私人有限公司
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 声龙(新加坡)私人有限公司 filed Critical 声龙(新加坡)私人有限公司
Publication of WO2024027133A1 publication Critical patent/WO2024027133A1/zh

Links

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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • 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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/378Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a parallel poll method
    • 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/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本申请提供一种优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片。该优先级分组轮询仲裁器包括至少二组输入端口、一个输出端口、至少二个组内轮询仲裁电路和一个组优先控制电路;其中每一个组内轮询仲裁电路与一组输入端口连接,每一组输入端口包括至少二个输入端口,各组内轮询仲裁电路顺次连接并均与组优先控制电路和输出端口连接;每一个组内轮询仲裁电路,响应于组优先控制电路发出的优先级控制信号或者前一个组内轮询仲裁电路发出的仲裁失败信号,对与其连接的输入端口接收到的请求进行仲裁,将仲裁出的请求传输至输出端口发送出去或者向后一个组内轮询仲裁电路发出仲裁失败信号。

Description

优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片
相关申请的交叉引用
本申请要求于2022年08月01日提交的申请号为202210913919.4,名称为“优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片”的中国专利申请的优先权,其通过引用方式全部并入本文。
技术领域
本申请涉及集成电路技术领域,尤其涉及一种优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片。
背景技术
随着芯片工艺的不断发展,集成电路越来越大规模化,结构越来越复杂,功能越来越丰富。在从(slave)单元,例如随机存取存储器(Random Access Memory,RAM)有多个主(master)单元,例如算术逻辑单元(Arithmetic Logic Unit,ALU)访问时,仲裁器(arbiter)必不可少。在集成电路中,仲裁器是一种常见的电路结构,仲裁器一般具有多个输入端口,一个或者多个输出端口,用于对多个输入端口接收到的数据按照既定的规则进行仲裁,将仲裁出的数据传输到适当的输出端口。仲裁器是芯片片上系统经常用到的电路结构,在不同的应用场景中,对仲裁器的要求不同。仲裁器设计的优劣,对片上系统的性能有较大的影响。在高通量的应用场景中,例如网络互联结构,要求片上系统的负载均衡,对仲裁器的要求较高,在此应用场景中广泛使用的是轮询仲裁器。在网络互联结构中,轮询仲裁器可以尽可能的做到公平仲裁,以此来均衡片上系统的负载。但是如果网络互联结构的规模较大,在较小的时间片内,轮询仲裁器很难维持片上系统的负载均衡,会导致片上系统的数据吞吐量下降,从而降低片上系统的效率和稳定性。
发明内容
本申请提供一种优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片,用以克服现有的轮询仲裁器在网络互联结构的规模较大时,在较小的 时间片内,很难维持片上系统的负载均衡,会导致片上系统的数据吞吐量下降,从而降低片上系统的效率和稳定性的缺陷,可以满足较大规模的网络互联结构对负载均衡的要求,在较小的时间片内,可以尽可能的做到公平仲裁,可以有效保证片上系统的负载均衡,维持片上系统较高的数据吞吐量,使片上系统具有较高的效率和稳定性。
第一方面,本申请提供一种优先级分组轮询仲裁器,包括:至少二组输入端口、一个输出端口、至少二个组内轮询仲裁电路和一个组优先控制电路;其中,
每一个所述组内轮询仲裁电路与一组所述输入端口连接,其中每一组所述输入端口包括至少二个输入端口,各所述组内轮询仲裁电路顺次连接,并均与所述组优先控制电路和所述输出端口连接;
每一个所述组内轮询仲裁电路,响应于所述组优先控制电路发出的优先级控制信号,或者前一个所述组内轮询仲裁电路发出的仲裁失败信号,对与其连接的所述输入端口接收到的请求进行仲裁,将仲裁出的请求传输至所述输出端口发送出去,或者向后一个所述组内轮询仲裁电路发出仲裁失败信号。
根据本申请提供的优先级分组轮询仲裁器,还包括:缓存电路,与各所述组内轮询仲裁电路连接和所述输入端口连接,每一个所述组内轮询仲裁电路仲裁出的请求传输至所述缓存器,再通过所述缓存器传输至所述输出端口。
根据本申请提供的优先级分组轮询仲裁器,所述优先级控制信号使每一个时钟周期只有一个所述组内轮询仲裁电路处于有效状态,并基于时钟周期进行更新,使各所述组内轮询仲裁电路依次处于有效状态。
根据本申请提供的优先级分组轮询仲裁器,所述组内轮询仲裁电路的仲裁规则:使每一个时钟周期只有一个所述输入端口具有最高优先级,并基于时钟周期进行更新,使各所述输入端口依次具有最高优先级。
根据本申请提供的优先级分组轮询仲裁器,所述输入端口与上游单元连接,接收所述上游单元的请求;所述输出端口与下游单元连接,将向所述上游单元发送仲裁出的请求。
第二方面,本申请还提供一种优先级分组轮询仲裁方法,应用于第一 方面所述的优先级分组轮询仲裁器,所述方法包括:
响应于所述组优先控制电路发出的优先级控制信号,确定一个所述组内轮询仲裁电路为当前组内轮询仲裁电路,对与其连接的所述输入端口接收到的请求进行仲裁;
若仲裁出请求,所述当前组内轮询仲裁电路将仲裁出的请求传输至所述输出端口发送出去;否则,所述当前组内轮询仲裁电路向后一个所述组内轮询仲裁电路发出仲裁失败信号;
响应于前一个所述组内轮询仲裁电路发出的仲裁失败信号,后一个所述组内轮询仲裁电路作为当前组内轮询仲裁电路,对与其连接的所述输入端口接收到的请求进行仲裁。
第三方面,本申请还提供一种交叉开关,包括:第一数量的输入端口和路由器,第二数量的输出端口和第一方面所述的优先级分组轮询仲裁器;
每一个所述输入端口与一个所述路由器连接,每一个所述路由器分别与各所述优先级分组轮询仲裁器连接,每一个所述优先级分组轮询仲裁器与一个所述输出端口连接。
根据本申请提供的交叉开关,在所述路由器的每一个输出端口处均设有缓存电路。
根据本申请提供的交叉开关,所述输入端口和所述路由器为16个,所述输出端口和所述优先级分组轮询仲裁器为16个。
第四方面,本申请还提供一种芯片,包括第一方面所述的优先级分组轮询仲裁器,或者第三方面所述的交叉开关。
本申请提供的优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片,通过对轮询仲裁器的输入端口进行分组,为每一组输入端口配置一个组内轮询仲裁电路,将各组内轮询仲裁电路顺次连接,并设置一个组优先控制电路,通过组优先控制电路发出优先级控制信号或者前一个组内轮询仲裁电路发出仲裁失败信号,使组内轮询仲裁电路对输入端口接收到的请求进行仲裁,将仲裁出的请求传输至输出端口或者向后一个组内轮询仲裁电路发出仲裁失败信号,可以满足不同规模的网络互联结,特别是较大规模的网络互联结构,对负载均衡的要求,无论是在较长的时间片内,还是在较小的时间片内,都可以尽可能的做到公平仲裁,可以有效保证片上系统的 负载均衡,维持片上系统较高的数据吞吐量,使片上系统具有较高的效率和稳定性,保证片上系统的高性能,非常适用于具有高通量需求的应用场景。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的优先级分组轮询仲裁器的组成结构示意图;
图2是本申请提供的优先级分组轮询仲裁方法的流程示意图;
图3是本申请提供的另一优先级分组轮询仲裁器的组成结构示意图;
图4是本申请提供的另一优先级分组轮询仲裁方法的流程示意图;
图5是现有的轮询仲裁器在16个时钟周期内仲裁结果的统计图;
图6是本申请的优先级分组轮询仲裁器在16个时钟周期内仲裁结果的统计图;
图7是本申请提供的交叉开关的组成结构示意图;
图8是本申请提供的另一交叉开关的组成结构示意图;
图9是采用具有固定优先级的仲裁器的交叉开关的数据统计图;
图10是采用现有的轮询仲裁器的交叉开关的数据统计图;
图11是采用优先级分组轮询仲裁器的交叉开关的数据统计图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参阅图1,图1是本申请提供的优先级分组轮询仲裁器的组成结构示意图。本申请提供的优先级分组轮询仲裁器包括:至少二组输入端口、一个输出端口、至少二个组内轮询仲裁电路和一个组优先控制电路。如图 1所示,优先级分组轮询仲裁器包括:Z组输入端口111、112…….11Z,一个输出端口120,Z个组内轮询仲裁电路131、132…….13Z,一个组优先控制电路140,其中Z是大于2的正整数。每一个组内轮询仲裁电路与一组输入端口连接,每一组输入端口包括至少二个输入端口。如图1所示,组内轮询仲裁电路131与一组输入端口111连接,一组输入端口111包括输入端口G11、G12……G1S,组内轮询仲裁电路132与一组输入端口112连接,一组输入端口112包括输入端口G21、G22……G2S,……,组内轮询仲裁电路13Z与一组输入端口11Z连接,一组输入端口11Z包括输入端口GZ1、GZ2……GZS,其中S是大于1的正整数,也就是将S*Z个输入端口以每一组S个输入端口分成Z组,分别与Z个组内轮询仲裁电路连接。各组内轮询仲裁电路顺次连接,并均与组优先控制电路和输出端口连接。如图1所示,组内轮询仲裁电路131、132…….13Z顺次连接,组内轮询仲裁电路131、132…….13Z均分别与组优先控制电路140和输出端口120连接。
每一个组内轮询仲裁电路响应于组优先控制电路发出的优先级控制信号,或者前一个组内轮询仲裁电路发出的仲裁失败信号,对与其连接的输入端口接收到的请求进行仲裁,将仲裁出的请求传输至输出端口发送出去,或者向后一个组内轮询仲裁电路发出仲裁失败信号。如图1所示,组内轮询仲裁电路131响应于组优先控制电路140发出的优先级控制信号,或者响应于组内轮询仲裁电路13Z发出的仲裁失败信号,对与其连接的输入端口G11、G12……G1S接收到的请求进行仲裁,将仲裁出的请求传输至输出端口120发送出去,或者向组内轮询仲裁电路132发出仲裁失败信号;组内轮询仲裁电路132响应于组优先控制电路140发出的优先级控制信号,或者响应于组内轮询仲裁电路131发出的仲裁失败信号,对与其连接的输入端口G21、G22……G2S接收到的请求进行仲裁,将仲裁出的请求传输至输出端口120发送出去,或者向组内轮询仲裁电路133发出仲裁失败信号;依此类推,组内轮询仲裁电路13Z响应于组优先控制电路140发出的优先级控制信号,或者响应于组内轮询仲裁电路13(Z-1)发出的仲裁失败信号,对与其连接的输入端口GZ1、GZ2……GZS接收到的请求进行仲裁,将仲裁出的请求传输至输出端口120发送出去,或者向组内轮 询仲裁电路131发出仲裁失败信号。
请参阅图2,图2是本申请提供的优先级分组轮询仲裁方法的流程示意图。本申请提供的优先级分组轮询仲裁方法应用于图1所示的优先级分组轮询仲裁器,如图2所示,该优先级分组轮询仲裁方法至少包括下述步骤。
201,响应于组优先控制电路发出的优先级控制信号,确定一个组内轮询仲裁电路为当前组内轮询仲裁电路,对与其连接的输入端口接收到的请求进行仲裁。
202,若仲裁出请求,当前组内轮询仲裁电路将仲裁出的请求传输至输出端口发送出去;否则,当前组内轮询仲裁电路向后一个组内轮询仲裁电路发出仲裁失败信号。
203,响应于前一个组内轮询仲裁电路发出的仲裁失败信号,后一个组内轮询仲裁电路作为当前组内轮询仲裁电路,对与其连接的输入端口接收到的请求进行仲裁。
本申请实施例提供的优先级分组轮询仲裁器及其仲裁方法,通过对轮询仲裁器的输入端口进行分组,为每一组输入端口配置一个组内轮询仲裁电路,将各组内轮询仲裁电路顺次连接,并设置一个组优先控制电路,通过组优先控制电路发出优先级控制信号或者前一个组内轮询仲裁电路发出仲裁失败信号,使组内轮询仲裁电路对输入端口接收到的请求进行仲裁,将仲裁出的请求传输至输出端口或者向后一个组内轮询仲裁电路发出仲裁失败信号,可以满足不同规模的网络互联结,特别是较大规模的网络互联结构,对负载均衡的要求,无论是在较长的时间片内,还是在较小的时间片内,都可以尽可能的做到公平仲裁,可以有效保证片上系统的负载均衡,维持片上系统较高的数据吞吐量,使片上系统具有较高的效率和稳定性,保证片上系统的高性能,非常适用于具有高通量需求的应用场景。
在一些可选的例子中,优先级控制信号可以使每一个时钟周期只有一个组内轮询仲裁电路处于有效状态,并基于时钟周期进行更新,可以使各组内轮询仲裁电路依次处于有效状态。如图1所示,组优先控制电路140可以通过Z根信号线分别与Z个组内轮询仲裁电路连接,每一个时钟周期Z根信号线输出的控制信号会更新,在每一个时钟周期Z根信号线中有且 仅有一根有效,因此在每一个时钟周期Z个组内轮询仲裁电路中有且仅有一个组内轮询仲裁电路获得优先仲裁的权利。
例如,若在当前时钟周期,组优先控制电路140输出的控制信号为0……001,其中1为有效信号,接收到1的组内轮询仲裁电路在Z个组内轮询仲裁电路中获得优先仲裁的权利;在下一个时钟周期,组优先控制电路140输出的控制信号为0……010,其中1为有效信号,接收到1的组内轮询仲裁电路在Z个组内轮询仲裁电路中获得优先仲裁的权利;在再下一个时钟周期,组优先控制电路140输出的控制信号为0……100,其中1为有效信号,接收到1的组内轮询仲裁电路在Z个组内轮询仲裁电路中获得优先仲裁的权利;以此类推,在再下一个时钟周期,组优先控制电路140输出的控制信号为1……000,其中1为有效信号,接收到1的组内轮询仲裁电路在Z个组内轮询仲裁电路中获得优先仲裁的权利;在再下一个时钟周期,组优先控制电路140输出的控制信号为0……001,其中1为有效信号,接收到1的组内轮询仲裁电路在Z个组内轮询仲裁电路中获得优先仲裁的权利,以此类推。
在一些可选的例子中,组内轮询仲裁电路的仲裁规则:使每一个时钟周期只有一个输入端口具有最高优先级,并基于时钟周期进行更新,使各输入端口依次具有最高优先级。如图1所示,Z个组内轮询仲裁电路中的每一个组内轮询仲裁电路对与其连接的S个输入端口赋予仲裁优先级,在每一个时钟周期S个输入端口中有且仅有一个输入端口具有最高优先级,每一个时钟周期仲裁优先级会进行更新,使S个输入端口依次具有最高优先级。
例如,若在当前时钟周期,一个组内轮询仲裁电路对与其连接的S个输入端口的仲裁优先级由高到低排序为从1到S,其中1为最高优先级,第1个输入端口具有最高优先级;在下一个时钟周期,组内轮询仲裁电路对与其连接的S个输入端口的仲裁优先级由高到低排序为从2到S再到1,其中2为最高优先级,第2个输入端口具有最高优先级;在再下一个时钟周期,组内轮询仲裁电路对与其连接的S个输入端口的仲裁优先级由高到低排序为从3到S再到1、2。其中3为最高优先级,第3个输入端口具有最高优先级;以此类推,在再下一个时钟周期,组内轮询仲裁电路对 与其连接的S个输入端口的仲裁优先级由高到低排序为从1到S,其中1为最高优先级,第1个输入端口具有最高优先级,以此类推。
在一些可选的例子中,输入端口与上游单元连接,接收上游单元的请求,输出端口与下游单元连接,将向上游单元发送仲裁出的请求。如图1所示,S*Z个输入端口可以分别与S*Z上游单元连接,接收上游单元发出的请求,上游单元可以是master单元或者路由器,例如master单元可以为ALU等,本申请实施例对master单元的类型不作限定。一个输出端口可以与下游单元连接,向上游单元发送仲裁出的请求,下游单元可以是slave单元,例如slave单元可以为RAM、总线控制器等,本申请实施例对slave单元的类型不作限定。
请参阅图3,图3是本申请提供的另一优先级分组轮询仲裁器的组成结构示意图。对于图3与图1的相同之处不再复述,本实施例只对图3与图1的不同之处进行说明,在组内轮询仲裁电路与输出端口之间设有缓存电路,缓存电路与各组内轮询仲裁电路连接和输入端口连接,每一个组内轮询仲裁电路仲裁出的请求传输至缓存器,再通过缓存器传输至输出端口。如图3所示,缓存电路150分别与Z个组内轮询仲裁电路及输出端口120连接,接收并保存每一个组内轮询仲裁电路仲裁出的请求,并将保存的请求传输至输出端口120。通过缓存电路的设置可以进一步保证片上系统的负载均衡,维持片上系统较高的数据吞吐量。
请参阅图4,图4是本申请提供的另一优先级分组轮询仲裁方法的流程示意图。本申请提供的另一优先级分组轮询仲裁方法应用于图3所示的优先级分组轮询仲裁器,如图4所示,该优先级分组轮询仲裁方法至少包括下述步骤。
401,组优先控制电路140更新控制信号,输出的控制信号为0……010。
402,组内轮询仲裁电路2接收到组优先控制电路140的有效信号,屏蔽组内轮询仲裁电路1的仲裁结果信号。
403,组内轮询仲裁电路2按照仲裁规则开始对输入端口G21、G22……G2S接收到的请求进行仲裁。
404,组内轮询仲裁电路2完成仲裁,并输出仲裁结果。
405,判断组内轮询仲裁电路2是否成功仲裁,若成功仲裁,则跳转到406;否则跳转到408。
406,缓存电路150接收来自组内轮询仲裁电路2成功仲裁的请求。
407,缓存电路150通过输出端口120将成功仲裁的请求传递到下游单元。
408,组内轮询仲裁电路3按照仲裁规则开始对输入端口G31、G32……G3S接收到的请求进行仲裁。
409,组内轮询仲裁电路3完成仲裁,并输出仲裁结果。
410,判断组内轮询仲裁电路3是否成功仲裁,若成功仲裁,则跳转到411;否则跳转到组内轮询仲裁电路4按照仲裁规则开始对输入端口G41、G42……G4S接收到的请求进行仲裁,并以此类推,若组内轮询仲裁逻辑4至Z都没能成功仲裁,则跳转到412。
411,缓存电路150接收来自组内轮询仲裁电路3成功仲裁的请求,然后跳转到407。
412,组内轮询仲裁电路1按照仲裁规则开始对输入端口G11、G12……G1S接收到的请求进行仲裁。
413,组内轮询仲裁电路1完成仲裁,并输出仲裁结果。
414,判断组内轮询仲裁电路1是否成功仲裁,若成功仲裁,则跳转到415;否则跳转到416。
415,缓存电路150接收来自组内轮询仲裁电路1成功仲裁的请求,然后跳转到407。
若经过上述401至415未有组内轮询仲裁电路仲裁成功,则该时钟周期整个仲裁器未成功仲裁。
下面通过具体实施例将本申请的优先级分组轮询仲裁器与现有的轮询仲裁器进行比较,说明本申请优先级分组轮询仲裁器的优点。
本申请的优先级分组轮询仲裁器与现有的轮询仲裁器均具有16输入端口,两个仲裁器的测试用例相同,测试用例使仲裁器的16个输入端口一直持续有请求到达。本申请的优先级分组轮询仲裁器每相邻的4个输入端口被分为一组,为每一组输入端口配置一个组内轮询仲裁电路。统计16个时钟周期内两个仲裁器的仲裁情况。
请参阅图5和图6,图5是现有的轮询仲裁器在16个时钟周期内仲裁结果的统计图,图6是本申请的优先级分组轮询仲裁器在16个时钟周期内仲裁结果的统计图。
如图5所示,在三维图中高度代表成功仲裁的请求总数。在第1至第4个时钟周期内,输入端口1至4累计成功仲裁4个请求,输入端口5至16累计成功仲裁0个请求;在第5至第8个时钟周期内,输入端口5至8累计成功仲裁4个请求,输入端口1至4和9至16累计成功仲裁0个请求;在第9至第12个时钟周期内,输入端口9至12累计成功仲裁4个请求,输入端口1至8和13至16累计成功仲裁0个请求;在第13至第16个时钟周期内,输入端口13至16累计成功仲裁4个请求,输入端口1至12累计成功仲裁0个请求。该仲裁器在16个时钟周期内成功仲裁共计16个请求。
如图6所示,在第1至第4个时钟周期内,输入端口1至4累计成功仲裁1个请求,输入端口5至8累计成功仲裁1个请求,输入端口9至12累计成功仲裁1个请求,输入端口13至16累计成功仲裁1个请求;在第5至第8个时钟周期内,输入端口1至4累计成功仲裁1个请求,输入端口5至8累计成功仲裁1个请求,输入端口9至12累计成功仲裁1个请求,输入端口13至16累计成功仲裁1个请求;在第9至第12个时钟周期内,输入端口1至4累计成功仲裁1个请求,输入端口5至8累计成功仲裁1个请求,输入端口9至12累计成功仲裁1个请求,输入端口13至16累计成功仲裁1个请求;在第13至第16个时钟周期内,输入端口1至4累计成功仲裁1个请求,输入端口5至8累计成功仲裁1个请求,输入端口9至12累计成功仲裁1个请求,输入端口13至16累计成功仲裁1个请求。该仲裁器在16个时钟周期内成功仲裁共计16个请求。
对比两个仲裁器的数据,在相同的时间片内,成功仲裁的总数相同,但是在更小的时间片内,本申请的优先级分组轮询仲裁器以组为单位,相比现有的轮询仲裁器更公平,更有利于负载均衡。在一种应用场景中,如果从16个master单元发出请求,master单元与仲裁器之间的路径较远,且存在共用的数据通道。若在第1至第4个时钟周期这种较小的时间片内,与现有的轮询仲裁器的输入端口1至4连接的master单元的请求被优先 仲裁,那么与现有的轮询仲裁器的输入端口5至16连接的master单元的请求将会被延迟,输入端口的排序越靠后延迟越严重。这种延迟可能会导致与现有的轮询仲裁器连接的master单元较长时间的等待或者空闲,或者master单元与现有的轮询仲裁器之间的数据通道出现拥堵。而本申请的优先级分组轮询仲裁器则不会出现这种情况。
交叉开关(crossbar)是集成电路中一种常见的网络互联结构,交叉开关一般具有多个输入端口和多个输出端口,通过将元器件连接成矩阵结构实现多个输入端口与多个输出端口的网络互联功能。请参阅图7,图7是本申请提供的交叉开关的组成结构示意图。本申请提供的交叉开关包括:第一数量的输入端口和路由器,第二数量的输出端口和图1或图3的优先级分组轮询仲裁器。如图7所示,交叉开关包括:N个输入端口711、712、713…….71N,N个路由器721、722、723…….72N,M个输出端口731、732、733…….73M,M个图1或图3的优先级分组轮询仲裁器741、742、743…….74M,其中N和M均为大于3的正整数。每一个输入端口与一个路由器连接,每一个路由器分别与各优先级分组轮询仲裁器连接,每一个优先级分组轮询仲裁器与一个输出端口连接。如图7所示,每一个路由器具有1个输入端口和M个输出端口,N个输入端口711、712、713…….71N分别与N个路由器721、722、723…….72N一一对应连接,每一个优先级分组轮询仲裁器的N个输入端口和1个输出端口,M个输出端口731、732、733…….73M分别与M个优先级分组轮询仲裁器741、742、743…….74M一一对应连接,每一个路由器的M个输出端口分别与M个优先级分组轮询仲裁器741、742、743…….74M连接,每一个优先级分组轮询仲裁器的N个输入端口分别与N个路由器721、722、723…….72N连接,形成N*M的交叉开关。
其中,路由器(router)是集成电路中一种常见的电路结构,一般具有一个或者多个输入端口,多个输出端口,用于将输入端口接收到的数据按照既定的规则传递到适当的输出端口。在本申请实施例中,每一个路由器可以同时路由多个请求到不同的优先级分组轮询仲裁器进行仲裁。
本申请提供的交叉开关,通过采用优先级分组轮询仲裁器,无论是在较长的时间片内,还是在较小的时间片内,都可以尽可能的做到公平仲裁, 可以有效保证交叉开关的负载均衡,从而保证交叉开关具有较高的效率和稳定性,保证片上系统的高性能。
在一些可选的例子中,在路由器的每一个输出端口处均设有缓存电路。如图7所示,在N个路由器中每一个路由器的M各输出端口均设有缓存电路。
在一些可选的例子中,输入端口与上游单元连接,接收上游单元的请求,输出端口与下游单元连接,将向上游单元发送仲裁出的请求。如图7所示,N个输入端口可以分别与N上游单元连接,接收上游单元发出的请求,上游单元可以是master单元,例如master单元可以为ALU等,本申请实施例对master单元的类型不作限定。M个输出端口可以与下游单元连接,向上游单元发送仲裁出的请求,下游单元可以是slave单元,例如slave单元可以为RAM、总线控制器等,本申请实施例对slave单元的类型不作限定。
请参阅图8,图8是本申请提供的另一交叉开关的组成结构示意图。如图8所示,交叉开关可以包括16个输入端口、16个路由器、16个输出端口和16个优先级分组轮询仲裁器,形成16x16的交叉开关。在16个输入端口持续有请求到达,且请求随机时,16个路由器会一直有足够多的请求发送到16个优先级分组轮询仲裁器等待仲裁,16个优先级分组轮询仲裁器的输入端口会一直有请求到达,与16个优先级分组轮询仲裁器连接的16个输出端口一直不会拥堵。
下面通过具体实施例将本申请的交叉开关与现有的交叉开关进行比较,说明本申请交叉开关的优点。
现有的交叉开关中的仲裁器通常采用具有固定优先级的仲裁器或者现有的轮询仲裁器。本申请的交叉开关与现有的交叉开关均为16*16的交叉开关。由于交叉开关的输出端口一直不会拥堵,假设交叉开关中仲裁器的输入端口的请求一直是满的,对交叉开关的输出端口进行测试,采用具有固定优先级的仲裁器的交叉开关、采用现有的轮询仲裁器的交叉开关和采用优先级分组轮询仲裁器的交叉开关的效率都是100%。对上述三种交叉开关的输入端口进行统计,根据数据的差异性对比来进行评判。
请参阅图9、图10和图11,图9是采用具有固定优先级的仲裁器的 交叉开关的数据统计图,图10是采用现有的轮询仲裁器的交叉开关的数据统计图,图11是采用优先级分组轮询仲裁器的交叉开关的数据统计图。
如图9所示,对采用具有固定优先级的仲裁器的16*16的交叉开关,进行32个时钟周期的采样统计,在三维图中高度代表交叉开关的输入端口通过的请求总数。在交叉开关的输入端口1至2,即输入端口1和输入端口2,在第1至第2个时钟周期内,有32个请求通过。由于具有固定优先级的仲裁器的特点是:从仲裁器的输入端口1到仲裁器的输入端口16,优先级逐渐降低。因此在整个32个时钟周期内,交叉开关的输入端口1至2通过的请求数量为512个,而其他的输入端口通过的请求数量为0个。
如图10所示,对采用现有的轮询仲裁器的16*16的交叉开关,进行32个时钟周期的采样统计。由于现有的轮询仲裁器的特点是:在当前时钟周期,从仲裁器的输入端口1到仲裁器的输入端口16,优先级逐渐降低;在下一个时钟周期,从仲裁器的输入端口2到仲裁器的输入端口16,再到仲裁器的输入端口1,优先级逐渐降低;在再下一个时钟周期,从仲裁器的输入端口3到仲裁器的输入端口16,再到仲裁器的输入端口1和仲裁器的输入端口2,优先级逐渐降低,依此类推;在再下一个时钟周期,从仲裁器的输入端口1到仲裁器的输入端口16,优先级逐渐降低,依此类推。因此在整个32个时钟周期内,交叉开关的输入端口1至2、3至4、5至6、7至8、9至10、11至12、13至14,15至16通过的请求数量各为64个,共计512个。
其中,在第1至第2个时钟周期,交叉开关的输入端口1至2通过32个请求,其他的输入端口通过0个请求;
在第3至第4个时钟周期,交叉开关的输入端口3至4通过32个请求,其他的输入端口通过0个请求;
在第5至第6个时钟周期,交叉开关的输入端口5至6通过32个请求,其他的输入端口通过0个请求;
在第7至第8个时钟周期,交叉开关的输入端口7至8通过32个请求,其他的输入端口通过0个请求;
在第9至第10个时钟周期,交叉开关的输入端口9至10通过32个请求,其他的输入端口通过0个请求;
在第11至第12个时钟周期,交叉开关的输入端口11至12通过32个请求,其他的输入端口通过0个请求;
在第13至第14个时钟周期,交叉开关的输入端口13至14通过32个请求,其他的输入端口通过0个请求;
在第15至第16个时钟周期,交叉开关的输入端口15至16通过32个请求,其他的输入端口通过0个请求;
在第17至第18个时钟周期,交叉开关的输入端口1至2通过32个请求,其他的输入端口通过0个请求;
在第19至第20个时钟周期,交叉开关的输入端口3至4通过32个请求,其他的输入端口通过0个请求;
在第21至第22个时钟周期,交叉开关的输入端口5至6通过32个请求,其他的输入端口通过0个请求;
在第23至第24个时钟周期,交叉开关的输入端口7至8通过32个请求,其他的输入端口通过0个请求;
在第25至第26个时钟周期,交叉开关的输入端口9至10通过32个请求,其他的输入端口通过0个请求;
在第27至第28个时钟周期,交叉开关的输入端口11至12通过32个请求,其他的输入端口通过0个请求;
在第29至第30个时钟周期,交叉开关的输入端口13至14通过32个请求,其他的输入端口通过0个请求;
在第31至第32个时钟周期,交叉开关的输入端口15至16通过32个请求,其他的输入端口通过0个请求。
如图11所示,对采用优先级分组轮询仲裁器的16*16的交叉开关,进行32个时钟周期的采样统计。优先级分组轮询仲裁器以每两个输入端口为1组,共分为8组。由于优先级分组轮询仲裁器的特点是:仲裁器的8个组随着时钟周期依次具有最高优先级,优先级随组的排序依次降低。例如,在当前时钟周期,从第1组到第8组的优先级逐渐降低;在下一个时钟周期,从第2组到第8组再到第1组的优先级逐渐降低,依此类推;在再下一个时钟周期,第1组到第8组的优先级逐渐降低,依此类推。在每一个组内遵循轮询仲裁的规则。以第1组为例,第2组至第8组与第1 组类似,在当前时钟周期,在第1组内输入端口1的优先级大于输入端口2的优先级;在下一个时钟周期,在第1组内输入端口2优先级大于输入端口1的优先级;在再下一个时钟周期,在第1组内输入端口1优先级大于输入端口2的优先级,依此类推。因此在整个32时钟周期内,输入端口1至2、3至4、5至6、7至8、9至10、11至12、13至14、15至16通过的请求数量各为64个,共计512个。其中,
在第1至第2个时钟周期,交叉开关的输入端口1至2、3至4、5至6、7至8、9至10、11至12、13至14、15至16分别各通过2个请求;
在第3至第4个时钟周期,交叉开关的输入端口1至2、3至4、5至6、7至8、9至10、11至12、13至14、15至16分别各通过2个请求;依此类推。
在第31至第32个时钟周期,交叉开关的输入端口1至2、3至4、5至6、7至8、9至10、11至12、13至14、15至16分别各通过2个请求。
在实际应用场景中,交叉开关的输入端口通常不会一直有请求到达,交叉开关的输出端口也不会一直不拥堵。交叉开关仲裁的公平性,有利于交叉开关的负载均衡,也有利于提高交叉开关的效率和稳定性。通过将本申请的交叉开关与采用具有固定优先级的仲裁器的交叉开关以及采用现有的轮询仲裁器的交叉开关进行对比。采用具有固定优先级的仲裁器的交叉开关,由于交叉开关的输入端口1具有最高的仲裁优先级,若交叉开关的输入端口1一直有请求到达,就一直优先仲裁交叉开关的输入端口1的请求。因此从图9中可见,输入端口1至2将一直有请求通过,但是其他输入端口通过的请求数量为0。只有当路由器1和2中缓存的请求为空时,排序靠后的交叉开关的输入端口才有机会被仲裁。在较长的时间片内,交叉开关的输入端口排序靠前的效率高,排序越靠后效率越低,这种表现不符合负载不均衡的要求,平均下来,整个交叉开关的效率较低。采用现有的轮询仲裁器的交叉开关与本申请的交叉开关相比,从图10和图11对比中可见,本申请的交叉开关在较小的时间片内,更能够保证公平仲裁,使交叉开关的各个输入端口在维持高效率的前提下效率更平均,使整个交差开关更稳定。
本申请还提供了一种芯片,该芯片可以包括图1或图3的优先级分组 轮询仲裁器,和/或图7或图8的交叉开关。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

  1. 一种优先级分组轮询仲裁器,包括:至少二组输入端口、一个输出端口、至少二个组内轮询仲裁电路和一个组优先控制电路,
    其中,每一个所述组内轮询仲裁电路与一组所述输入端口连接,其中每一组所述输入端口包括至少二个输入端口,各所述组内轮询仲裁电路顺次连接,并均与所述组优先控制电路和所述输出端口连接;
    每一个所述组内轮询仲裁电路,响应于所述组优先控制电路发出的优先级控制信号,或者前一个所述组内轮询仲裁电路发出的仲裁失败信号,对与其连接的所述输入端口接收到的请求进行仲裁,将仲裁出的请求传输至所述输出端口发送出去,或者向后一个所述组内轮询仲裁电路发出仲裁失败信号。
  2. 根据权利要求1所述的优先级分组轮询仲裁器,其中,还包括:缓存电路,与各所述组内轮询仲裁电路连接和所述输入端口连接,每一个所述组内轮询仲裁电路仲裁出的请求传输至所述缓存器,再通过所述缓存器传输至所述输出端口。
  3. 根据权利要求1或2所述的优先级分组轮询仲裁器,其中,所述优先级控制信号使每一个时钟周期只有一个所述组内轮询仲裁电路处于有效状态,并基于时钟周期进行更新,使各所述组内轮询仲裁电路依次处于有效状态。
  4. 根据权利要求1或2所述的优先级分组轮询仲裁器,其中,所述组内轮询仲裁电路的仲裁规则:使每一个时钟周期只有一个所述输入端口具有最高优先级,并基于时钟周期进行更新,使各所述输入端口依次具有最高优先级。
  5. 根据权利要求1或2所述的优先级分组轮询仲裁器,其特征在于,所述输入端口与上游单元连接,接收所述上游单元的请求;所述输出端口与下游单元连接,将向所述上游单元发送仲裁出的请求。
  6. 一种优先级分组轮询仲裁方法,应用于权利要求1至5中任一项所述的优先级分组轮询仲裁器,所述方法包括:
    响应于所述组优先控制电路发出的优先级控制信号,确定一个所述组内轮询仲裁电路为当前组内轮询仲裁电路,对与其连接的所述输入端 口接收到的请求进行仲裁;
    若仲裁出请求,所述当前组内轮询仲裁电路将仲裁出的请求传输至所述输出端口发送出去;否则,所述当前组内轮询仲裁电路向后一个所述组内轮询仲裁电路发出仲裁失败信号;
    响应于前一个所述组内轮询仲裁电路发出的仲裁失败信号,后一个所述组内轮询仲裁电路作为当前组内轮询仲裁电路,对与其连接的所述输入端口接收到的请求进行仲裁。
  7. 一种交叉开关,包括:第一数量的输入端口和路由器,第二数量的输出端口和权利要求1至5中任一项所述的优先级分组轮询仲裁器;
    每一个所述输入端口与一个所述路由器连接,每一个所述路由器分别与各所述优先级分组轮询仲裁器连接,每一个所述优先级分组轮询仲裁器与一个所述输出端口连接。
  8. 根据权利要求7所述的交叉开关,其中,在所述路由器的每一个输出端口处均设有缓存电路。
  9. 根据权利要求7或8所述的交叉开关,所述输入端口和所述路由器为16个,所述输出端口和所述优先级分组轮询仲裁器为16个。
  10. 一种芯片,包括权利要求1至5中任一项所述的优先级分组轮询仲裁器,或者权利要求7至9中任一项所述的交叉开关。
PCT/CN2023/076176 2022-08-01 2023-02-15 优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片 WO2024027133A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210913919.4A CN114968866B (zh) 2022-08-01 2022-08-01 优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片
CN202210913919.4 2022-08-01

Publications (1)

Publication Number Publication Date
WO2024027133A1 true WO2024027133A1 (zh) 2024-02-08

Family

ID=82969371

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/076176 WO2024027133A1 (zh) 2022-08-01 2023-02-15 优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片

Country Status (2)

Country Link
CN (1) CN114968866B (zh)
WO (1) WO2024027133A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114968866B (zh) * 2022-08-01 2022-11-01 中科声龙科技发展(北京)有限公司 优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1870769A (zh) * 2005-05-26 2006-11-29 华为技术有限公司 一种基于优先级传播的交叉连接矩阵的仲裁方法及仲裁单元
CN108199985A (zh) * 2017-12-29 2018-06-22 中国人民解放军国防科技大学 GPGPU中基于全局节点信息的NoC仲裁方法
CN110083563A (zh) * 2019-04-01 2019-08-02 吉林大学 一种基于循环优先级实现公平仲裁的仲裁电路
US20200225986A1 (en) * 2019-01-16 2020-07-16 Stmicroelectronics Sa Arbitration device
CN114968866A (zh) * 2022-08-01 2022-08-30 中科声龙科技发展(北京)有限公司 优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7706387B1 (en) * 2006-05-31 2010-04-27 Integrated Device Technology, Inc. System and method for round robin arbitration
CN101887382B (zh) * 2010-06-28 2016-11-23 南京中兴软件有限责任公司 动态优先级的仲裁方法及装置
CN109815191A (zh) * 2019-01-31 2019-05-28 郑州云海信息技术有限公司 一种交叉开关及其创建方法、ip核
CN110620731B (zh) * 2019-09-12 2021-03-23 中山大学 一种片上网络的路由装置及路由方法
CN111639044B (zh) * 2020-05-22 2022-05-03 中国人民解放军国防科技大学 一种支持中断优先级轮询仲裁派发的方法和装置
CN113641605A (zh) * 2021-07-16 2021-11-12 南京大学 一种适用于异步电路的轮询仲裁器及其方法
CN114265798B (zh) * 2022-03-02 2022-05-13 北京得瑞领新科技有限公司 任务队列的仲裁管理方法、存储介质及固态硬盘

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1870769A (zh) * 2005-05-26 2006-11-29 华为技术有限公司 一种基于优先级传播的交叉连接矩阵的仲裁方法及仲裁单元
CN108199985A (zh) * 2017-12-29 2018-06-22 中国人民解放军国防科技大学 GPGPU中基于全局节点信息的NoC仲裁方法
US20200225986A1 (en) * 2019-01-16 2020-07-16 Stmicroelectronics Sa Arbitration device
CN110083563A (zh) * 2019-04-01 2019-08-02 吉林大学 一种基于循环优先级实现公平仲裁的仲裁电路
CN114968866A (zh) * 2022-08-01 2022-08-30 中科声龙科技发展(北京)有限公司 优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片

Also Published As

Publication number Publication date
CN114968866A (zh) 2022-08-30
CN114968866B (zh) 2022-11-01

Similar Documents

Publication Publication Date Title
CN110620731B (zh) 一种片上网络的路由装置及路由方法
US6314487B1 (en) Adaptive routing controller of a crossbar core module used in a crossbar routing switch
AU2980099A (en) Fair and efficient cell scheduling in input-buffered multipoint switch
WO2024027133A1 (zh) 优先级分组轮询仲裁器及其仲裁方法、交叉开关和芯片
US8228930B1 (en) Interconnection network router arrangements and methods therefor
JPH10190710A (ja) アクセス調停方法
WO2011006398A1 (zh) 一种数据交换方法及数据交换结构
JPWO2014128802A1 (ja) インタフェース装置およびバスシステム
US5694121A (en) Latency reduction and routing arbitration for network message routers
WO2019236235A1 (en) Priority-based arbitration for parallel multicast routing with self-directed data packets
CN1311374C (zh) 计算机系统的输入/输出节点标识命令的装置及方法
US7054330B1 (en) Mask-based round robin arbitration
CN114257557B (zh) 一种数据分组交换系统和方法
US6681274B2 (en) Virtual channel buffer bypass for an I/O node of a computer system
CN112073336A (zh) 基于AXI4 Stream接口协议的高性能数据交换系统及方法
US6807599B2 (en) Computer system I/O node for connection serially in a chain to a host
CN101459598B (zh) 实现分组交换的方法及其系统
Liu et al. Hierarchical adaptive routing: A framework for fully adaptive and deadlock-free wormhole routing
US20230070690A1 (en) Virtual channel starvation-free arbitration for switches
CN113285935B (zh) 一种通信系统和一种片上网络路由器
US6820151B2 (en) Starvation avoidance mechanism for an I/O node of a computer system
EP1187422B1 (en) Method and device for tunable packet arbitration
Katevenis et al. ‘VC-level Flow Control and Shared Buffering in the Telegraphos Switch
CN112949247B (zh) 一种基于相位的芯片片上总线调度装置及调度方法
JPH04256246A (ja) バス優先占有方式およびその方式を使用した通信ネットワーク接続装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23848848

Country of ref document: EP

Kind code of ref document: A1