CN114138706A - 一种多功能仲裁器、仲裁方法、芯片以及产品 - Google Patents
一种多功能仲裁器、仲裁方法、芯片以及产品 Download PDFInfo
- Publication number
- CN114138706A CN114138706A CN202111275497.4A CN202111275497A CN114138706A CN 114138706 A CN114138706 A CN 114138706A CN 202111275497 A CN202111275497 A CN 202111275497A CN 114138706 A CN114138706 A CN 114138706A
- Authority
- CN
- China
- Prior art keywords
- arbitration
- mask
- path
- bus
- arbiter
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/366—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Bus Control (AREA)
Abstract
本申请实施例提供一种多功能仲裁器、仲裁方法、芯片以及产品,所述多功能仲裁器包括:逻辑操作单元,被配置为将当前掩码和总线请求序列的相同位分别进行逻辑操作,得到逻辑操作结果;第一仲裁单元,被配置为根据所述逻辑操作结果,得到第一路仲裁结果,其中,所述总线请求序列用于表征当前时刻芯片上多个模块分别发出的对总线的使用请求,所述逻辑操作结果用于屏蔽已经响应过高优先级的总线请求;第二仲裁单元,被配置为根据所述总线请求序列获取第二路仲裁结果;仲裁策略选择器,被配置为从所述第一路仲裁结果和所述第二路仲裁结果中选择一路作为目标仲裁结果。通过本申请一些实施例实现固定优先级和公平轮询相结合的仲裁策略。
Description
技术领域
本申请涉及芯片设计领域,具体而言本申请实施例涉及一种多功能仲裁器、仲裁方法、芯片以及产品。
背景技术
随着芯片集成度不断增加,微电子发展进入SoC(System-on-Chip)设计阶段,SoC是一种在单核上集成微处理器、逻辑存储单元、DSP等众多模块的技术,片上通信基于总线协议时,众核(或多个模块)对总线的抢占成为研究重点。因此,SoC的工作性能相比单个模块,更依赖于总线占用机制的仲裁算法。
仲裁器(arbiter)主要用于位于同一芯片上的多个模块(或设备)同时发出请求(例如,多个处理器同时请求总线使用权)时,如何根据相应的仲裁算法确定本次响应哪一个模块请求。常用的仲裁器分为轮询仲裁器(Round-Robin)和固定优先级仲裁器(Fixed-Priority)。
轮询仲裁的规则是当0、1、2、、、、N-1共N个模块的信号源同时向仲裁器发出请求时,初始情况下source0的优先级最高,当仲裁器响应了source0之后,source1的优先级最高,依次类推。假设上一次的仲裁器Arbiter的仲裁结果表征为0000 0001(其中,该仲裁结果对应的二进制序列中的每个二进制位分别对应一个可以提出总线请求的模块,且该序列中的数字1表征有来自于对应模块的总线请求,数字0表征无来自于对应模块的总线请求),则下一次的结果应该为1~7位中的最低请求位,默认的是低位请求的优先级更高。固定优先级仲裁器Fixed-priority Arbiter顾名思义当0、1、2、、、N-1共N个模块的信号源source同时发起请求request时,Source 0的优先级最高,即便source0被响应完后,与该位对应的模块的总线请求仍为最高优先级,其中优先级按照序号逐渐降低。固定优先级仲裁器在FPGA实现与轮询仲裁器类似,唯一不同的是轮询仲裁在每次响应完request后会对优先级进行更新,而固定优先级则不需要此步骤。
如何改善仲裁策略以提升芯片上总线的利用率成了亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供一种多功能仲裁器、仲裁方法、芯片以及产品,通过本申请一些实施例至少可以通过记录掩码的使用次数,实现固定优先级和公平轮询相结合的仲裁策略。
第一方面,本申请的一些实施例提供一种多功能仲裁器,所述多功能仲裁器包括:逻辑操作单元,被配置为将当前掩码和总线请求序列的相同位分别进行逻辑操作,得到逻辑操作结果,其中,所述逻辑操作结果用于屏蔽已经响应过的高优先级的总线请求;第一仲裁单元,被配置为根据所述逻辑操作结果,得到第一路仲裁结果,其中,所述总线请求序列用于表征当前时刻芯片上多个模块分别发出的对总线的使用请求;第二仲裁单元,被配置为根据所述总线请求序列获取第二路仲裁结果;仲裁策略选择器,被配置为从所述第一路仲裁结果和所述第二路仲裁结果中选择一路作为目标仲裁结果。
本申请的一些实施例通过设置掩码来调整仲裁策略,提升了仲裁算法的灵活性。
在一些实施例中,所述当前掩码采用数字0记录响应过的请求,且采用数字1表征未被响应过的请求,所述总线请求序列采用数字1表征有来自于相应模块的总线请求;其中,所述逻辑操作单元包括与门,其中,所述与门的两个输入端分别用于输入所述当前掩码和所述总线请求序列且所述与门的输出端与所述第一仲裁单元的输入端连接,所述与门被配置为对所述当前掩码和所述总线请求序列中各相应位进行逻辑与操作,得到轮询总线请求序列;所述第一仲裁单元被配置为接收所述轮询总线请求序列,并根据固定优先级仲裁策略和所述轮询总线请求序列得到所述第一路仲裁结果;其中,当所述当前掩码为全1时,则所述仲裁器被配置为基于固定优先级策略处理一个或多个请求。
本申请的一些实施例通过与门对掩码和总线请求序列中的相应位分别进行与操作得到的结果可以屏蔽已经响应过的高优先级的请求,采用基于固定优先级的算法模块实现了类似于公平轮询的策略。
在一些实施例中,所述总线请求序列包括的二进制的位数与能够共享同一资源的模块的总数目相同;其中,所述多功能仲裁器还包括:选择控制信号生成单元,被配置为将所述与门的输出信号中的各位进行逻辑操作,得到选通信号;所述仲裁策略选择器被配置为:当所述选通信号为1时则选择所述第一路仲裁结果作为所述目标仲裁结果,当所述选通信号为0时则选择所述第二路仲裁结果作为所述目标仲裁结果。
本申请的一些实施例中采用选择器来实现对多功能仲裁策略的选择。
在一些实施例中,所述多功能仲裁器还包括:掩码生成单元,被配置为生成所述当前掩码。
在一些实施例中,所述掩码生成单元包括:计数器,被配置为记录所述当前掩码的使用次数;数据选择器,被配置为根据所述使用次数确定下一次获取所述第一路仲裁结果的掩码。
本申请的一些实施例通过记录掩码的利用次数,实现固定优先级和公平策略两种功能。
在一些实施例中,所述数据选择器被配置为:当所述使用次数大于或等于设定阈值时,则选择更新掩码作为下一次获取所述第一路仲裁结果的掩码;或者,当所述使用次数小于所述设定阈值时,则选择所述当前掩码作为下一次获取所述第一路仲裁结果的掩码。
本申请的一些实施例通过记录掩码的利用次数,来分别实现固定优先级的轮询策略和公平轮询策略,具体地,通过掩码实现公平轮询策略,因为掩码屏蔽了响应过的高优先请求,通过控制同一掩码的使用次数来实现同一优先级的请求被响应的频率,保证了较高优先级的请求的响应频率越高。
在一些实施例中,所述掩码生成单元还包括:寄存器,被配置为存储所述当前掩码所对应的二进制序列。
本申请的一些实施例通过记录掩码的利用次数,实现固定优先级和公平策略两种功能。
第二方面,本申请的一些实施例提供一种仲裁方法,所述仲裁方法包括:获取当前掩码,其中,所述当前掩码为一组二进制序列,且所述当前掩码用于记录响应过的请求;根据所述当前掩码和总线请求序列得到备选的第一路仲裁结果;根据所述总线请求序列和固定优先级算法得到备选的第二路仲裁结果;从所述第一路仲裁结果和所述第二路仲裁结果中选择一路作为目标仲裁结果。
在一些实施例中,所述仲裁方法还包括:获取所述当前掩码的使用次数;根据所述当前掩码的使用次数确定针对下一次总线请求序列的掩码。
在一些实施例中,所述根据所述当前掩码的使用次数确定针对下一次请求序列的更新掩码,包括:若确认所述当前掩码的使用次数大于或等于设定阈值时,则获取更新掩码作为所述针对下一次总线请求序列的掩码,否则选择所述当前掩码作为所述针对下一次总线请求序列的掩码,其中,所述更新掩码至少用于记录本次响应过的请求。
第三方面,本申请的一些实施例提供一种芯片,包括多个模块,共享总线以及如上述第一方面所述的仲裁器,且每个模块均可以发出请求使用所述共享总线的请求,得到用于记录同一时刻发出请求的总线请求序列,将所述总线请求序列输入所述仲裁器获得目标仲裁结果。
第四方面,本申请的一些实施例提供一种产品,所述产品包括如第三方面所述的芯片和外设接口。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的多功能仲裁器的组成结构示意图之一;
图2为本申请实施例提供的多功能仲裁器的组成结构示意图之二;
图3为本申请实施例提供的多功能仲裁器的组成结构示意图之三;
图4为本申请实施例提供的掩码生成单元的组成结构示意图之一;
图5为本申请实施例提供的掩码生成单元的组成结构示意图之二;
图6为本申请实施例提供的仲裁方法的流程图;
图7为本申请实施例提供的芯片的组成结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
至少为了解决背景技术存在的问题,在本申请的一些实施例中通过设置不同的掩码控制仲裁器改变对应的仲裁策略,例如,当掩码各位均被设置为全1时,则仲裁器被配置为基于固定优先级策略处理一个或多个请求,当掩码是用于屏蔽上一次响应过的请求的则仲裁器被配置为基于公平的轮询策略响应一个或多个请求(即,根据掩码过滤上一次响应过的请求),以使得仲裁器实现基于公平轮询策略处理一个或多个请求(例如,基于公平轮询策略的方式即通过生成的掩码屏蔽本轮已经受理完的访问请求,放弃对同一高优先级请求的再次受理)。在本申请的一些实施例中,还为某一个掩码设置了使用次数,进而通过统计该掩码的使用次数来改变仲裁器的仲裁策略。例如,设置各掩码的使用次数为3次,则当某一个掩码被使用三次以后则会生成新的掩码,此时生成的新的掩码用于屏蔽上三次已经响应过的高优先级的请求(避免同一优先级的请求被第四次响应,使得较低优先级的请求有机会被响应,体现了公平轮询的仲裁策略),这样可以既保证了高优先级请求被响应的频率更大同时也实现了较低优先级请求被频繁拒绝。
请参看图1,图1为本申请的一些实施例提供一种多功能仲裁器10,该多功能仲裁器10包括:逻辑操作单元100、第一仲裁单元200、第二仲裁单元300以及仲裁策略选择器400,其中,逻辑操作单元100的输出端与第一仲裁单元200的输入端连接,第一仲裁单元的输出端与仲裁策略选择器400的第一输入端连接,第二仲裁单元300的输入端用于接收总线请求序列,第二仲裁单元300的输出端与仲裁策略选择器400的第二输入端连接。仲裁策略选择器400根据相关的选取规则从由第一仲裁单元200输出的第一路仲裁结果和由第二仲裁单元输出的第二路仲裁结果中选择一路作为最终的目标仲裁结果。需要说明的是,相关的选取规则包括:是否采用掩码屏蔽响应过的高优先级的请求,具体地,通过设置掩码来控制仲裁策略选择器从第一路仲裁结果(即由第一仲裁单元得到的)和第二路仲裁结果(即由第二仲裁单元得到的)中选择一路作为最终的仲裁结果,也可以通过记录同一掩码的使用次数来调整仲裁策略输出结果。例如,第一仲裁单元和第二仲裁单元可以采用现有的固定优先级算法对输入的总线请求序列进行处理。
图1的逻辑操作单元100被配置为将当前掩码110和总线请求序列120的相同位分别进行逻辑操作,得到逻辑操作结果,其中,所述逻辑操作结果用于屏蔽已经响应过高优先级的总线请求。
图1的第一仲裁单元200被配置为根据由当前掩码和总线请求序列获取的逻辑操作结果(即由逻辑操作单元100输出的结果),得到第一路仲裁结果,其中,所述总线请求序列用于表征当前时刻芯片上多个模块(或称为多个设备)分别发出的对总线的使用请求。在本申请的一些实施例中,该第一仲裁单元200中集成了固定优先级的仲裁算法,也就是说,如果该第一仲裁单元接收输入的是总线请求序列则该仲裁单元将按照固定优先级的策略响应一个或多个总线请求。而由于本申请的一些实施例中,向第一仲裁单元200输入的是经过掩码处理后的总线请求序列因此采用第一仲裁单元200可以实现公平仲裁策略的算法。
图1的第二仲裁单元300被配置为根据所述总线请求序列获取第二路仲裁结果。在本申请的一些实施例中,第二仲裁单元300集成了固定优先级的仲裁算法。可以理解的是,由于在本申请的实施例中输入该第二仲裁单元300的是总线请求序列,因此该仲裁单元输出的第二路仲裁结果是按照固定优先级的算法得到的。
图1的仲裁策略选择器400被配置为从由第一仲裁单元200得到的第一路仲裁结果和由第二路仲裁单元300得到的第二路仲裁结果中选择一路作为目标仲裁结果。
下面结合附图进一步示例性解释图1的各单元。
在本申请的一些实施例中,当前掩码110采用数字0记录响应过的请求,且采用数字1表征未被响应过的请求。总线请求序列120中数字1表征有来自于相应模块的总线请求。相应的,如图2所示本申请一些实施例的逻辑操作单元100包括与门,其中,该与门的两个输入端分别用于输入mask(即当前掩码110)和Req(即总线请求序列120),图2的与门的输出端与simple fixed模块(即固定优先级仲裁单元,作为第一仲裁单元200的一个示例)输入端连接,图2的与门被配置为对当前掩码和总线请求序列中各相应位进行逻辑与操作,得到轮询总线请求序列,之后simple fixed模块被配置为接收该轮询总线请求序列,并根据轮询总线请求序列得到所述第一路仲裁结果。需要说明的是,当所述当前掩码为全1时,则所述仲裁器被配置为基于固定优先级策略处理一个或多个请求。
在本申请的一些实施例中,总线请求序列120包括的二进制的位数与能够共享同一资源的模块的总数目相同,其中,该多功能仲裁器10还包括:选择控制信号生成单元500。
图2的选择控制信号生成单元500被配置为将图2的与门的输出信号中的各位进行逻辑操作,得到选通信号。相应的,图2的Mux模块(即二选一数据选择器,作为仲裁策略选择器的一个示例)被配置为:当选择控制信号生成单元500得到的选通信号为1时则选择由第一仲裁单元200得到的第一路仲裁结果作为所述目标仲裁结果,当选择控制信号生成单元500得到的选通信号为0时则选择由第二仲裁单元300得到的第二路仲裁结果作为所述目标仲裁结果(即得到图2的gnt)。
例如,图2的选择控制信号生成单元500包括或门510,该或门510被配置为将输入的n个比特(即将当前掩码和总线请求序列按位与操作之后得到的n个比特的信号)进行或操作运算,如果结果为1,则说明有输入信号,则选择第一路仲裁结果作为目标仲裁结果。如果结果为0,则说明无输入信号,则选择第二路仲裁结果作为目标仲裁结果。
如图3所示,该图与图2的差异在于,图3的多功能仲裁器10还包括:掩码生成单元600,该掩码生成单元600被配置为获取当前掩码mask。
下面结合图4和图5示例性阐述图3的掩码生成单元600的结构。
如图4所示,在本申请的一些实施例中,掩码生成单元600包括:计数器610以及数据选择器620(即图5的Mux模块),其中,计数器610的输出端与数据选择器620的一个输入端连接。
图4的计数器610被配置为记录掩码的使用次数。例如,当第一掩码为新生成的掩码时,则该计数值为1,而当该第一掩码被第二次使用时,计数值将更新为2,以此类推,直至对该第一掩码的使用次数达到设置的上限,则会产生一个新的掩码,并将计数器的计数值清零,重新记录该新的掩码的使用次数。
图4的数据选择器620有三个输入端,第一输入端与本次得到目标仲裁结果连接,第二输入端用于输入掩码生成单元600得到更新掩码,第三输入端与计数器610的输出端连接。
图4的数据选择器620被配置为根据计数器610记录的当前掩码的使用次数确定下一次获取第一路仲裁结果的掩码。具体地,图4的数据选择器620被配置为:当统计的当前掩码的使用次数大于或等于设定阈值时,则选择更新掩码作为下次获取第一路仲裁结果的掩码,或者,当所述使用次数小于设定阈值时,则继续选择当前掩码作为下一次获取第一路仲裁结果的掩码。
如图4所示,在本申请的一些实施例中,掩码生成单元600还包括:寄存器630,该寄存器630被配置为存储更新掩码所对应的二进制序列。
如图5所示,该图与图4的差异在于,采用二选一的数据选择器Mux作为数据选择器620的一个具体示例,并选择上升沿触发的寄存器作为图5的寄存器的一个示例,可以理解的是,寄存器630的位数与掩码位数相同。图5的寄存器是上升沿触发存储掩码各位的。例如,在本申请的一些实施例中该寄存器630用于存储上一次响应过的高位请求(即高优先级的请求)。
下面结合相关技术进一步示例性阐述本申请的一些实施例。
假设接收的n个请求(即来自于n个模块或设备的请求)对应的n位的总线请求序列表征为:req0、req1,……,reqn。
对应于n个输入请求的n个输出响应分别为:gnt0,……,gntn,对应于gnt序列,即作为目标仲裁策略。
仲裁器对n个请求的处理过程为:低序号的请求被响应(即将多个请求共享的设备或者资源分配给低序号的请求,默认的低序号的请求的优先级更高),阻塞高序号的请求。
用位操作表征仲裁器的仲裁逻辑为:
Gnt0=req0
Gnt1=req0与req1
Gnt2=req0与req1与req2
即某一位gnt是否为1,取决于当前该位及以前位是否有请求,例如,gnt3是否为1,取决于第0、1、2及3位的req是否有效。
相关技术会设定一个中间变量higher-req来标记某位之前是否存在请求,那么可以得到:
Higher-req(n)=higher-req(n-1)
相关技术的公平轮询仲裁器:即每个req请求,机会均等地被响应。
例:
第一次:req0、req1,req4有效,响应req0;req1和req4被忽略;
若第二次:req0,req1,req4继续有效,则响应req1;req0和req4被忽略。
以此类推,直至所有请求被响应。
在本申请的一些实施例考虑固定优先级仲裁器中的high-req,上例中,req0-4的序列为:11001,此时生成的higher-req序列为:01111,发现如果将higher-req与req作“与”操作,就可以过滤掉已响应的请求,即过滤掉req0。据此,可以生成本申请一些实施例的mask掩码,也就是说,本申请的一些实施例中配合两个固定优先级仲裁器构造一个公平轮询仲裁器,如图2所示。
下面示例性阐述本申请一些实施例的仲裁器的工作过程。
第一步,设置掩码mask初始值为1111,表示保留所有输入。
第二步,假设输入Req(即总线请求序列)第一次为11001,那么req与mask的结果进行与操作之后依旧为11001,不为0;
第三步,由于Req与mask不为0,那么仲裁策略选择器选择的结果为第一仲裁单元的输出第一路仲裁结果,即选择了Req与mask=11001经过固定优先级仲裁器的结果:gnt=10000,响应来自于第0设备的总线请求req0;
第四步,将mask的值,更新为第二仲裁单元的higher-req,此时的值为01111;
第五步,第一次仲裁到此结束,mask值保持为01111;
第六步,开始第二次仲裁,输入Req依旧是11001;
第七步,此时mask值为01111,与Req作与操作后,得到的值为01001,此时该值不为0,那么输出选择第一路仲裁结果,即此时,输入为01001,响应结果即为01000,即req1得到响应;
第八步,req1得到响应后,mask掩码更新为此时的higher-req即为00111;
第九步,在新的掩码00111的作用下,req4继续得到响应。
如果掩码没有达到预期次数,那么就继续使用当前(即01111)作为掩码,直到01111这个掩码用了三次为止,如果当前掩码达到了使用次数上限则会采用更新掩码00111。
例2:顺序one-shot仲裁
One-shot仲裁即所有请求按顺序响应,即第一次智能响应req0,在req0得到响应后才能响应req1,依次类推,因此掩码生成的逻辑应该为:10000---01000---00100---00010—00001,按照该次序顺次生成掩码。
本申请的一些实施例基于此仲裁器的结构作了改进,适应于多功能用途。具体地,本申请的一些实施例设计了带权重的公平轮询仲裁,将掩码生成单元作如下修改:相关技术中对mask掩码的生成是直接采用上一次仲裁器的higher-reqs。本申请的一些实施例增加一个mask值对应的计数器,在满足条件次数的mask值到来之后选择是否继续选用该mask,例如,前面的例子中,掩码值更新为01111,那么对应地增加一个计数器,记录01111的次数,如果次数达到了预期值,比如3,那么下一次的掩码即00111。
如图6所示,本申请的一些实施例提供一种仲裁方法,所述仲裁方法包括:S101,获取当前掩码,其中,所述当前掩码为一组二进制序列,且所述当前掩码用于记录响应过的请求;S102,根据所述当前掩码和总线请求序列得到备选的第一路仲裁结果;S103,根据所述总线请求序列的固定优先级算法得到备选的第二路仲裁结果;S104,从所述第一路仲裁结果和所述第二路仲裁结果中选择一路作为目标仲裁结果。
在一些实施例中,所述仲裁方法还包括:获取所述当前掩码的使用次数;根据所述当前掩码的使用次数确定针对下一次总线请求序列的掩码。
在一些实施例中,所述根据所述当前掩码的使用次数确定针对下一次请求序列的更新掩码,包括:若确认所述当前掩码的使用次数大于或等于设定阈值时,则获取更新掩码作为所述掩码,否则选择所述当前掩码作为所述掩码,其中,所述更新掩码至少用于记录本次响应过的请求。
如图7所示,本申请的一些实施例提供一种芯片,该芯片包括多个模块,例如,图7的第一模块710、第二模块712、第三模块713……直至第n模块71n。
图7的芯片还包括总线20以及仲裁器10,且每个模块均可以发出请求使用总线20,得到请求序列(Req1、Req2、Req3……Reqn),每个Req用对应一个二进制位。
图7的总线请求序列输入仲裁器获10得仲裁结果,其中,仲裁结果用于表征所述多个模块中的可以使用总线的模块。
本申请的一些实施例提供一种产品,所述产品包括如图7所示芯片和外设接口等。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (12)
1.一种多功能仲裁器,其特征在于,所述多功能仲裁器包括:
逻辑操作单元,被配置为将当前掩码和总线请求序列的相同位分别进行逻辑操作,得到逻辑操作结果,其中,所述逻辑操作结果用于屏蔽已经响应过的总线请求;
第一仲裁单元,被配置为根据所述逻辑操作结果,得到第一路仲裁结果,其中,所述总线请求序列用于表征当前时刻芯片上多个模块分别发出的对总线的使用请求;
第二仲裁单元,被配置为根据所述总线请求序列获取第二路仲裁结果;
仲裁策略选择器,被配置为从所述第一路仲裁结果和所述第二路仲裁结果中选择一路作为目标仲裁结果。
2.如权利要求1的所述多功能仲裁器,其特征在于,所述当前掩码采用数字0记录响应过的请求,且采用数字1表征未被响应过的请求,所述总线请求序列采用数字1表征有来自于相应模块的总线请求;其中,
所述逻辑操作单元包括与门,其中,所述与门的两个输入端分别用于输入所述当前掩码和所述总线请求序列且所述与门的输出端与所述第一仲裁单元的输入端连接,所述与门被配置为对所述当前掩码和所述总线请求序列中各相应位进行逻辑与操作,得到轮询总线请求序列;
所述第一仲裁单元被配置为接收所述轮询总线请求序列,并根据固定优先级仲裁策略和所述轮询总线请求序列得到所述第一路仲裁结果;
其中,当所述当前掩码为全1时,则所述仲裁器被配置为基于固定优先级策略处理一个或多个请求。
3.如权利要求2所述的多功能仲裁器,其特征在于,所述总线请求序列包括的二进制的位数与能够共享同一资源的模块的总数目相同;
其中,
所述多功能仲裁器还包括:
选择控制信号生成单元,被配置为将所述与门的输出信号中的各位进行逻辑操作,得到选通信号;
所述仲裁策略选择器被配置为:当所述选通信号为1时则选择所述第一路仲裁结果作为所述目标仲裁结果,当所述选通信号为0时则选择所述第二路仲裁结果作为所述目标仲裁结果。
4.如权利要求1所述的多功能仲裁器,其特征在于,所述多功能仲裁器还包括:
掩码生成单元,被配置为生成所述当前掩码。
5.如权利要求4所述的多功能仲裁器,其特征在于,所述掩码生成单元包括:
计数器,被配置为记录所述当前掩码的使用次数;
数据选择器,被配置为根据所述使用次数选择下一次获取所述第一路仲裁结果的掩码。
6.如权利要求5所述的多功能仲裁器,其特征在于,所述数据选择器被配置为:
当所述使用次数大于或等于设定阈值时,则选择更新掩码作为下一次获取所述第一路仲裁结果的掩码;或者,
当所述使用次数小于所述设定阈值时,则选择所述当前掩码作为下一次获取所述第一路仲裁结果的掩码。
7.如权利要求5所述的多功能仲裁器,其特征在于,所述掩码生成单元还包括:寄存器,被配置为存储所述当前掩码所对应的二进制序列。
8.一种仲裁方法,其特征在于,所述仲裁方法包括:
获取当前掩码,其中,所述当前掩码为一组二进制序列,且所述当前掩码用于记录响应过的请求;
根据所述当前掩码和总线请求序列得到第一路仲裁结果;
根据所述总线请求序列和固定优先级算法得到第二路仲裁结果;
从所述第一路仲裁结果和所述第二路仲裁结果中选择一路作为目标仲裁结果。
9.如权利要求8所述的仲裁方法,其特征在于,所述仲裁方法还包括:
获取所述当前掩码的使用次数;
根据所述当前掩码的使用次数确定针对下一次总线请求序列的掩码。
10.如权利要求9所述的仲裁方法,其特征在于,所述根据所述当前掩码的使用次数确定针对下一次请求序列的更新掩码,包括:
若确认所述当前掩码的使用次数大于或等于设定阈值时,则获取更新掩码作为所述针对下一次总线请求序列的掩码,否则选择所述当前掩码作为所述针对下一次总线请求序列的掩码,其中,所述更新掩码至少用于记录本次响应过的请求。
11.一种芯片,包括多个模块,共享总线以及如权利要求1-7任一项所述的多功能仲裁器,且每个模块均可发出请求使用所述共享总线的请求,得到用于记录同一时刻发出请求的总线请求序列,将所述总线请求序列输入所述仲裁器获得目标仲裁结果。
12.一种产品,其特征在于,所述产品包括如权利要求11所述的芯片和外设接口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111275497.4A CN114138706B (zh) | 2021-10-29 | 2021-10-29 | 一种多功能仲裁器、仲裁方法、芯片以及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111275497.4A CN114138706B (zh) | 2021-10-29 | 2021-10-29 | 一种多功能仲裁器、仲裁方法、芯片以及产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114138706A true CN114138706A (zh) | 2022-03-04 |
CN114138706B CN114138706B (zh) | 2022-07-08 |
Family
ID=80396246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111275497.4A Active CN114138706B (zh) | 2021-10-29 | 2021-10-29 | 一种多功能仲裁器、仲裁方法、芯片以及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138706B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564424A (zh) * | 2022-03-10 | 2022-05-31 | 上海壁仞智能科技有限公司 | 仲裁器及电子装置 |
CN114996178A (zh) * | 2022-06-30 | 2022-09-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种总线仲裁的方法、系统、设备和存储介质 |
CN115017093A (zh) * | 2022-05-06 | 2022-09-06 | 北京中科昊芯科技有限公司 | 一种片上外部总线通信的方法以及装置 |
CN115905088A (zh) * | 2022-12-27 | 2023-04-04 | 声龙(新加坡)私人有限公司 | 一种数据收集结构、方法、芯片和系统 |
WO2024016647A1 (zh) * | 2022-07-19 | 2024-01-25 | 声龙(新加坡)私人有限公司 | 加权轮询仲裁器及其轮询仲裁方法和芯片 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6510479B1 (en) * | 1999-09-15 | 2003-01-21 | Koninklijke Philips Electronics N.V. | Transmit pre-arbitration scheme for a can device and a can device that implements this scheme |
JP2003256358A (ja) * | 2002-02-28 | 2003-09-12 | Sony Corp | アービタ装置及び方法、並びに、リソース共有システム |
US7054330B1 (en) * | 2001-09-07 | 2006-05-30 | Chou Norman C | Mask-based round robin arbitration |
US7062582B1 (en) * | 2003-03-14 | 2006-06-13 | Marvell International Ltd. | Method and apparatus for bus arbitration dynamic priority based on waiting period |
CN101344871A (zh) * | 2008-08-20 | 2009-01-14 | 北京中星微电子有限公司 | 一种保证访问先后顺序的总线仲裁单元及其实现方法 |
US20120173781A1 (en) * | 2010-12-30 | 2012-07-05 | Lsi Corporation | Round robin arbiter with mask and reset mask |
US20130318270A1 (en) * | 2012-05-23 | 2013-11-28 | Arm Limited | Arbitration circuity and method for arbitrating between a plurality of requests for access to a shared resource |
US20190227841A1 (en) * | 2019-04-02 | 2019-07-25 | Intel Corporation | Arbitration of multiple requests |
-
2021
- 2021-10-29 CN CN202111275497.4A patent/CN114138706B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6510479B1 (en) * | 1999-09-15 | 2003-01-21 | Koninklijke Philips Electronics N.V. | Transmit pre-arbitration scheme for a can device and a can device that implements this scheme |
US7054330B1 (en) * | 2001-09-07 | 2006-05-30 | Chou Norman C | Mask-based round robin arbitration |
JP2003256358A (ja) * | 2002-02-28 | 2003-09-12 | Sony Corp | アービタ装置及び方法、並びに、リソース共有システム |
US7062582B1 (en) * | 2003-03-14 | 2006-06-13 | Marvell International Ltd. | Method and apparatus for bus arbitration dynamic priority based on waiting period |
CN101344871A (zh) * | 2008-08-20 | 2009-01-14 | 北京中星微电子有限公司 | 一种保证访问先后顺序的总线仲裁单元及其实现方法 |
US20120173781A1 (en) * | 2010-12-30 | 2012-07-05 | Lsi Corporation | Round robin arbiter with mask and reset mask |
US20130318270A1 (en) * | 2012-05-23 | 2013-11-28 | Arm Limited | Arbitration circuity and method for arbitrating between a plurality of requests for access to a shared resource |
US20190227841A1 (en) * | 2019-04-02 | 2019-07-25 | Intel Corporation | Arbitration of multiple requests |
Non-Patent Citations (1)
Title |
---|
杨等: "基于提前仲裁和请求等待优先的仲裁策略", 《华南理工大学学报(自然科学版)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114564424A (zh) * | 2022-03-10 | 2022-05-31 | 上海壁仞智能科技有限公司 | 仲裁器及电子装置 |
CN114564424B (zh) * | 2022-03-10 | 2023-04-25 | 上海壁仞智能科技有限公司 | 仲裁器及电子装置 |
CN115017093A (zh) * | 2022-05-06 | 2022-09-06 | 北京中科昊芯科技有限公司 | 一种片上外部总线通信的方法以及装置 |
CN114996178A (zh) * | 2022-06-30 | 2022-09-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种总线仲裁的方法、系统、设备和存储介质 |
WO2024016647A1 (zh) * | 2022-07-19 | 2024-01-25 | 声龙(新加坡)私人有限公司 | 加权轮询仲裁器及其轮询仲裁方法和芯片 |
CN115905088A (zh) * | 2022-12-27 | 2023-04-04 | 声龙(新加坡)私人有限公司 | 一种数据收集结构、方法、芯片和系统 |
CN115905088B (zh) * | 2022-12-27 | 2023-07-14 | 声龙(新加坡)私人有限公司 | 一种数据收集结构、方法、芯片和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114138706B (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114138706B (zh) | 一种多功能仲裁器、仲裁方法、芯片以及产品 | |
EP1403773B1 (en) | Resource management device | |
US5832278A (en) | Cascaded round robin request selection method and apparatus | |
US5729702A (en) | Multi-level round robin arbitration system | |
US9262356B2 (en) | Arbiter device and arbitration method | |
US6704821B2 (en) | Arbitration method and circuit architecture therefore | |
CN110297782B (zh) | 仲裁系统和方法 | |
JP2009512092A (ja) | 共有リソースを有するマルチプロセッサコンピュータシステムにおける動的な優先権コンフリクトの解決 | |
KR100252752B1 (ko) | 다단계 제어 버스 중재장치 | |
US7353311B2 (en) | Method of accessing information and system therefor | |
JPH0635729A (ja) | データ処理システムでの複数ユーザによる資源アクセスを管理する方法および装置 | |
GB2567027A (en) | Common priority information for multiple resource arbitration | |
GB2568124A (en) | Arbitration systems and methods | |
US7814253B2 (en) | Resource arbiter | |
KR100456696B1 (ko) | 집적회로장치의 버스중재기 | |
US20030229743A1 (en) | Methods and structure for improved fairness bus arbitration | |
US7127540B2 (en) | Apparatus and method for controlling frequency of bus use | |
US6745273B1 (en) | Automatic deadlock prevention via arbitration switching | |
US8140728B1 (en) | Data packet arbitration system | |
WO2023109066A1 (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN112463673B (zh) | 一种片上总线、及用于片上总线的服务质量仲裁方法、装置 | |
US10949258B1 (en) | Multistage round robin arbitration in a multiuser system | |
JP2007026022A (ja) | バス調停装置及びバス調停方法 | |
KR20050020233A (ko) | 다양한 버스 중재 알고리즘을 프로그램 할 수 있는 아비터 | |
Bajaj et al. | Arbitration schemes for multiprocessor Shared Bus |
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 |