CN111466106A - 通过龄值和流量类进行的请求仲裁 - Google Patents
通过龄值和流量类进行的请求仲裁 Download PDFInfo
- Publication number
- CN111466106A CN111466106A CN201980006294.XA CN201980006294A CN111466106A CN 111466106 A CN111466106 A CN 111466106A CN 201980006294 A CN201980006294 A CN 201980006294A CN 111466106 A CN111466106 A CN 111466106A
- Authority
- CN
- China
- Prior art keywords
- requests
- traffic class
- based arbitration
- arbiter
- age
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/78—Architectures of resource allocation
- H04L47/781—Centralised allocation of resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6225—Fixed service order, e.g. Round Robin
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6285—Provisions for avoiding starvation of low priority queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/828—Allocation of resources per group of connections, e.g. per group of users
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
示例实现涉及访问共享资源池的请求的混合仲裁。示例实现包括接收访问共享资源池的一组请求。请求可以各自来自任意数量的流量类。流量类可以根据基于回合的仲裁逻辑被选择。另外,可以选择来自所接收请求的子集的每个流量类的请求。由基于龄值的仲裁逻辑选择并且属于所选择的流量类的请求可以被准许访问共享资源池。
Description
背景技术
仲裁器是可用于调节对共享资源的访问的电子器件。仲裁器可以被实现为诸如应用专用集成电路(ASIC)的电子电路。仲裁器可以接收多个并存读和/或写请求以访问共享计算资源,并且可以串行地准许接收的对共享资源进行访问的请求。
为了公平地准许对请求的访问,可以采用各种方案。例如,在仲裁器从多个客户机接收请求时,仲裁器可以利用基于回合的方案,使得可以针对每个客户机准许相同数量的请求。
附图说明
在以下详细描述中并且参照附图描述了某些示例,其中:
图1是示出用于请求混合仲裁的示例器件的框图。
图2是示出利用多个仲裁器的请求混合仲裁的示例系统的框图。
图3是示出用于请求混合仲裁的另一示例系统300的框图。
图4是示出用于请求混合仲裁的另一示例系统400的框图。
图5是示出用于请求混合仲裁的另一示例系统500的框图。
图6是用于将请求器映射到流量类以利用混合仲裁方案的示例仲裁系统600的框图。
图7是示出用于实现根据流量类基于龄值的仲裁的方法700的流程图。
图8是示出用于实现根据流量类基于龄值的仲裁的方法800的流程图。
具体实施方式
访问共享资源池的请求可以分组为流量类。流量类是通过任意数量的参数分类的隔离的一组的虚拟信道。将虚拟信道划分为流量类使得能够在网络流量的不同的流或组之间实现性能隔离。流量类可以例如由任意数量的流量源(诸如地址块、多个器件和/或客户机、工作区、其组合或任何其他网络流量源)定义。不同的流量类可以同时请求对共享资源的访问,并且,仲裁器可以实现各种方案以促进不同流量类之间的公平性。
例如,基于回合的方案可以轮流准许对每个流量类的请求。基于回合的方案的一个这种示例是循环制(round-robin)仲裁。循环制仲裁是包含实现循环计数器的逻辑的方案,以以循环方式准许来自流量类的请求。实现循环制方案的仲裁器将通过准许来自流量类的预定量的请求来服务流量类或在预定时间内准许来自流量类的请求,此后,该流量类将被排序在最后并且下一流量类将被服务。
基于回合的方案的另一示例是最近使用最少(LRU)仲裁。实现LRU方案的仲裁器可以维护流量类的有序列表。为了准许请求,仲裁器可以按优先级扫描列表并准许来自具有最高优先级和活跃请求两者的流量类的请求。一旦仲裁器向流量类提供准许,仲裁器就可以降低该流量类的优先级。具有准许的请求的流量类可以例如被重新按优先级排序,以在所列出的流量类中具有最低优先级。与循环制仲裁一样,LRU仲裁提供了公平性,使得为每个流量类赋予其“回合”。
在一些示例性实施方式中,流量类可以以加权优先级进行准许,使得具有更大权重的流量类可以比具有更小权重的流量类准许更多的请求。这可以通过多种方式实现。例如,具有更大权重的流量类可以在与具有更小权重的流量类相比准许更多的请求后降低优先级;具有更大权重的流量类可以在请求准许后不降低到与具有更小权重的流量类相同的优先级程度;等等。
基于龄值的仲裁是另一种示例仲裁方案。实现基于龄值的仲裁的仲裁器对待由仲裁器准许的请求中具有最大龄值的请求提供准许。请求的龄值可以由自请求启动以来的时间、请求在待由仲裁器准许访问的请求队列中存在的时间、请求在待被准许访问所接收的资源的所接受请求中不被选择的次数等确定。
基于龄值的仲裁确保了请求之间的公平性:无论请求源自于何流量类,都将为具有最大龄值的请求提供服务。因此,单独的基于龄值的仲裁可能不利于流量类隔离。例如,当实现基于回合的仲裁方案时,可以依次准许每个流量类。相反,基于龄值的仲裁方案可能倾向于第一流量类,其中相比于来自第二流量类,更大百分比的请求是从第一流量类发起的。在一些示例中,第一个流量类可能会用请求阻塞网络,使得来自其他流量类的请求无法进行准许。
提出便于根据流量类基于龄值的仲裁的混合仲裁方法。通过使用混合仲裁,可以通过基于龄值的仲裁保持跨客户机和/或器件的公平访问,同时并行地通过基于回合的仲裁保持跨流量类的公平访问。具体地,仲裁器件可以包括基于回合的仲裁逻辑以接收源自不同流量类的第一组请求并且根据基于回合的仲裁方案从不同流量类选择流量类。混合仲裁器还可以包括基于龄值的仲裁逻辑以接收源自不同流量类的第二组请求。在示例中,第二组请求可以包括任意数量的第一组请求并且可以至少包括第一组请求的属于所选流量类的请求。基于龄值的仲裁逻辑可以根据基于龄值的仲裁方案从所接收请求的不同流量类中的每一个选择请求。由基于龄值的仲裁逻辑选择的并且属于由基于回合的仲裁逻辑选择的流量类的请求可以被准许对共享资源池进行访问。
图1是示出用于请求混合仲裁的示例器件100的框图。如图所示,仲裁器110可以接收分别来自请求器r0-r5、120-130的任意数量的请求。接收的每个请求可以与流量类相关联。在一些示例实施方式中,每个请求器可以与任意数量的流量类相关联,使得在与特定流量类相关联的请求器上接收的请求与该流量类相关联。虽然示出了六个示例请求器,但是可以实现携带任意数量请求的任意数量的请求器。
仲裁器110可以确定来自哪个流量类的哪些请求将接收准许,该准许待分别在准许线g0-g5、132-142上进行传送。仲裁器110可以实现为硬件或硬件和软件/固件的组合。为了确定哪些请求要被准许,仲裁器110可以采用混合仲裁逻辑。具体地,可以通过仲裁器110的基于回合的仲裁逻辑150和仲裁器110的基于龄值的仲裁逻辑160接收请求。仲裁器110的基于回合的仲裁逻辑150和仲裁器110的基于龄值的仲裁逻辑160可以被实现为逻辑电路,并且可以包括任意数量的应用专用集成电路(ASIC)。此外,虽然示例图1示出基于回合的仲裁逻辑150和基于龄值的仲裁逻辑160位于仲裁器110内,但是可以在任意数量的仲裁器内实现基于回合的仲裁逻辑150和基于龄值的仲裁逻辑160。
基于回合的仲裁逻辑150可以接收来自请求器r0–r5的第一组请求。接收的该组请求可以与多个不同的流量类相关联。基于回合的仲裁逻辑150可以从多个不同的流量类选择流量类,并且在示例中,可以根据如上面详细描述的基于回合的仲裁方案选择流量类。
基于龄值的仲裁逻辑160可以接收来自请求器r0–r5的第二组请求。在一些示例实现中,第二组请求可以是第一组请求,或者第二组请求可以是第一组请求的子集。第二组请求例如可以是第一组请求的与特定的流量类(诸如通过基于回合的仲裁逻辑150选择的流量类)相关联的请求。
基于龄值的仲裁逻辑160可以根据如上面详细描述的基于龄值的仲裁方案从所接收的请求的每个流量类选择请求。在示例中,仲裁器110可以准许由基于回合的仲裁逻辑150和基于龄值的仲裁逻辑160两者选择的请求。准许请求可以在准许线g0-g5的关联准许线上进行准许。因此,仲裁器110可以实现采用基于回合的仲裁逻辑150和基于龄值的仲裁逻辑160的混合仲裁方案。
图2是示出利用多个仲裁器的请求混合仲裁的示例系统200的框图。如图所示,仲裁器202和仲裁器204可以接收分别来自请求器r0–r2、220–224的任意数量的请求。接收的每个请求可以与流量类相关联。在一些示例实现中,每个请求器可以与任意数量的流量类相关联,使得在与特定流量类相关联的请求器上接收的请求与该流量类相关联。虽然示出三个示例请求器,但是可以实现携带任意数量请求的任意数量的请求器。
仲裁器202和仲裁器204可以实现为硬件或硬件和软件/固件的组合。在该示例中,仲裁器202包括基于回合的仲裁逻辑250,并且仲裁器204包括基于龄值的仲裁逻辑260。仲裁器110的基于回合的仲裁逻辑150和仲裁器110的基于龄值的仲裁逻辑160可以被实现为逻辑电路并且可以包括任意数量的应用专用集成电路(ASIC)。
仲裁器202在接收来自请求器r0–r2中的任何一个的请求时,根据基于回合的仲裁逻辑250,从所接收请求的多个不同的流量类中选择流量类,并且在示例中,可以根据如上面详细描述的基于回合的仲裁方案选择流量类。仲裁器202可以进一步输出指示选择的流量类的控制信号值280。
虽然仲裁器202可以实现基于回合的仲裁逻辑250以从多个不同的流量类选择流量类,但是仲裁器204可以利用基于龄值的仲裁逻辑260从特定的流量类选择请求。如示例图2所示,仲裁器204可以接收指示由仲裁器202选择的流量类的控制信号值280,以及从请求器r0–r2接收的请求。在一些示例实现中,仲裁器204可以实现基于龄值的仲裁逻辑260,以从与接收的请求相关联的流量类中的每一个选择请求。在一些示例实现中,基于龄值的仲裁逻辑260可以接收由仲裁器202选择并由接收的控制信号值280指示的流量类的请求。基于龄值的仲裁逻辑260可以根据如上详述的基于龄值的仲裁方案从由仲裁器202选择的流量类选择请求。
由仲裁器204选择并且属于由仲裁器202选择的流量类的请求可以被准许,并且在本实施实施方式中,可以在相应的准许线232、234或236中的任何一个上进行准许。在图2所示的示例中,仲裁器204被描绘为准许传送器;然而,在其它示例实施方式中,仲裁器202的信号输出和仲裁器204的所选择请求可以被发送到任意数量的其它器件以进行准许传送。在又一示例实现中,由仲裁器204选择的请求可以由仲裁器202接收,并且仲裁器202可以发出准许。
图3是示出用于请求混合仲裁的另一示例系统300的框图。系统300可以包括可以被实现为硬件或硬件和软件/固件的组合的仲裁器302和仲裁器304。在本示例中,仲裁器302包括基于回合的仲裁逻辑350,并且仲裁器304包括基于龄值的仲裁逻辑360以及选择器370。仲裁器110的基于回合的仲裁逻辑350以及仲裁器110的选择器370和基于龄值的仲裁逻辑160可以被实现为逻辑电路,并且可以包括任意数量的应用专用集成电路(ASIC)。
如图所示,仲裁器302可以接收分别来自请求器r0–r5、320–330的任意数量的请求。接收的每个请求可以与任意数量的流量类相关联。在本示例中,每个请求器可以与流量类相关联,使得在与特定流量类相关联的请求器上接收的请求与该流量类相关联。
例如,或门342–346可以在仲裁器302接收请求之前将这些请求映射到相应的流量类。在该示出的示例中,r0和r1、320和322可以通过或门342分别映射到第一流量类;r2和r3、324和326可以通过或门344分别映射到第二流量类;并且r4和r5、328和330可以通过或门346分别映射到第三流量类。通过将来自请求器的请求映射到相应流量类,基于回合的仲裁逻辑350可以根据基于回合的仲裁方案从具有活跃请求的流量类选择流量类。虽然示出了六个示例请求器,但是可以实现携带任意数量请求的任意数量的请求器。另外,虽然请求器320–330被映射到三个示例流量类,但是请求器320–330可以被映射到任意数量的流量类。
仲裁器302在接收来自请求器r0–r5中的任何一个的请求时可以根据基于回合的仲裁逻辑350从接收的请求的多个不同的流量类选择流量类,并且在示例中,可以根据如上详述的基于回合的仲裁方案选择流量类。仲裁器302可以进一步输出指示所选流量类的任意数量的控制信号值280。控制信号值可以由仲裁器304接收,并且可以具体地由仲裁器304的选择器370接收。控制信号值可以例如指示选择器370的与门372-382中的哪些接收“1”以及选择器380的与门372-382中的哪些接收“0”。在该示例实施方式中,控制信号380使得在仲裁器302处选择的流量类的请求能够通过选择器370以被基于龄值的仲裁逻辑360接收。换句话说,控制信号值可以通过使得所选流量类的请求能够通过选择器来指示所选流量类。
基于龄值的仲裁逻辑360可以接收来自请求器r0–r5的第二组请求。例如,选择器370可以传递由仲裁器302选择的任何流量类的请求。在此示例中,来自请求器r0–r5的第二组请求可以是第一组请求的请求,并且与由仲裁器302选择的任何流量类相关联。
基于龄值的仲裁逻辑360在接收第二组请求时可以从根据如上详述的基于龄值的仲裁方案接收的请求的各流量类选择请求。通过根据相应流量类通过选择器370过滤请求并且根据基于龄值的仲裁逻辑360从各流量类选择请求,仲裁器304可以根据基于龄值的仲裁方案选择属于特定流量类的请求。所选请求可分别在关联的准许线g0-g5、332-342上进行准许。
图3是示出用于请求混合仲裁的另一示例系统300的框图。系统300可以包括可以被实现为硬件或硬件和软件/固件的组合的仲裁器302和仲裁器304。在本示例中,仲裁器302包括基于回合的仲裁逻辑350,并且,仲裁器304包括基于龄值的仲裁逻辑360以及选择器370。仲裁器110的基于回合的仲裁逻辑350、仲裁器110的选择器370和基于龄值的仲裁逻辑160可以被实现为逻辑电路,并且可以包括任意数量的应用专用集成电路(ASIC)。
如图所示,仲裁器302可以接收分别来自请求器r0–r5、320–330的任意数量的请求。接收的每个请求可以与流量类相关联。在本示例中,每个请求器可以与流量类相关联,使得在与特定流量类相关联的请求器上接收的请求与该流量类相关联。
例如,在仲裁器302接收请求之前,或门342-346可以将请求映射到相应的流量类。在该示出的示例中,r0和r1、320和322可以通过或门342分别映射到第一流量类;r2和r3、324和326可以通过或门344分别映射到第二流量类;并且r4和r5、328和330可以通过或门346分别映射到第三流量类。通过将来自请求器的请求映射到相应流量类,基于回合的仲裁逻辑350可以根据基于回合的仲裁方案从具有活跃请求的流量类选择流量类。虽然示出六个示例请求器,但是可以实现携带任意数量请求的任意数量的请求器。另外,虽然请求器320–330被映射到三个示例流量类,但是请求器320–330可以被映射到任意数量的流量类。
仲裁器302在接收来自请求器r0–r5中的任何一个的请求时,可以根据基于回合的仲裁逻辑350从接收的请求的多个不同的流量类中选择流量类,并且在示例中,可以根据如上详述的基于回合的仲裁方案选择流量类。仲裁器302可以进一步输出任意数量的指示所选流量类的控制信号值,例如控制信号值380a、控制信号值380b和控制信号值380c。控制信号值可以由仲裁器304接收,并且可以具体地由仲裁器304的选择器370接收。例如,控制信号值可以作为“1”被传送到选择器370的与门372-382,并且可以作为“0”被传送到选择器380的与门372-382。在该示例性实施方式中,控制信号380使得在仲裁器302处选择的流量类的请求能够通过选择器370以被基于龄值的仲裁逻辑360接收。换句话说,控制信号值可以通过使得所选流量类的请求能够通过选择器来指示所选流量类。
基于龄值的仲裁逻辑360可以接收来自请求器r0–r5的第二组请求。例如,选择器370可以传递由仲裁器302选择的任何流量类的请求。在此示例中,来自请求器r0–r5的第二组请求可以是第一组请求的请求,并且与由仲裁器302选择的任何流量类相关联。
基于龄值的仲裁逻辑360在接收到第二组请求时可以从根据如上详述的基于龄值的仲裁方案接收的请求的每个流量类中选择请求。通过根据每个流量类通过选择器370过滤请求并且根据基于龄值的仲裁逻辑360从每个流量类选择请求,仲裁器304可以根据基于龄值的仲裁方案选择特定流量类的请求。所选请求可以分别在相关联的准许线g0-g5、332-342上进行准许。
图4是示出用于请求混合仲裁的另一示例系统400的框图。系统400可以包括可以被实现为硬件或硬件和软件/固件的组合的仲裁器402和仲裁器404。在该示例中,仲裁器402包括基于回合的仲裁逻辑450,并且,仲裁器404包括基于龄值的仲裁逻辑460以及多路复用器470和解多路复用器472。仲裁器402的基于回合的仲裁逻辑450和仲裁器404的多路复用器470、解多路复用器472和基于龄值的仲裁逻辑460可以被实现为逻辑电路并且可以包括任意数量的应用专用集成电路(ASIC)。
如图所示,仲裁器402可以接收分别来自请求器r0–r5、420–430的任意数量的请求。接收的每个请求可以与流量类相关联。在本示例中,每个请求器可以与流量类相关联,使得在与特定流量类相关联的请求器上接收的请求与该流量类相关联。
例如,在仲裁器402接收请求之前,或门442–446可以将这些请求映射到相应的流量类。在该示出的示例中,r0和r1、420和422可以通过或门442分别映射到第一流量类;r2和r3、424和426可以通过或门444分别映射到第二流量类;并且r4和r5、428和430可以通过或门446分别映射到第三流量类。通过将来自请求器的请求映射到相应流量类,基于回合的仲裁逻辑450可以根据基于回合的仲裁方案从具有活跃请求的流量类选择流量类。
仲裁器402在接收来自请求器r0–r5中的任何一个的请求时可以根据基于回合的仲裁逻辑450从接收的请求的多个不同的流量类中选择流量类,并且在示例中,可以根据如上详述的基于回合的仲裁方案选择流量类。仲裁器402可以进一步输出任意数量的指示所选流量类的控制信号值480,例如480a、480b和480c。在一些示例实施方式中,控制信号值可由编码器490接收、转换并随后由仲裁器404的多路复用器470接收。虽然编码器490在本示例中被示为单独的组件,但在一些示例中,编码器490可以包含于仲裁器404中,并且可以具体地包含于多路复用器470的逻辑中。
多路复用器470可以接收仲裁器402的编码信号输出以及请求420–430,并且可以输出请求420–430的子集。请求的子集可以是请求的全集,诸如请求420–430,或者,请求的子集可以是一组任意数量的特定流量类(诸如所选流量类)的请求。
请求的子集可以由基于龄值的仲裁逻辑460接收。基于龄值的仲裁逻辑460在接收到请求的子集时可以从根据如上详述的基于龄值的仲裁方案接收的请求的每个流量类选择请求。通过根据相应流量类通过多路复用器370过滤请求并且根据基于龄值的仲裁逻辑360从每个流量类选择请求,仲裁器304可以根据基于龄值的仲裁方案选择特定流量类的请求。
可以在相关联的准许线上准许所选请求。具体地,由基于龄值的仲裁逻辑460选择的请求可以被传送到解多路复用器472,该解多路复用器472可以在分别与请求420-430所源于的请求器相关联的准许线g0-g5、432-440中的任一个上传送准许。因此,可以利用根据流量类基于龄值的仲裁方案来传送对访问享资源池的请求的准许。
图5是示出用于请求混合仲裁的另一示例系统500的框图。系统500可以包括分别实现基于龄值的仲裁逻辑562-566的仲裁器502-506和实现基于回合的仲裁逻辑560的仲裁器512。仲裁器502–506和仲裁器512可以实现为硬件或硬件和软件/固件的组合。仲裁器512的基于回合的仲裁逻辑560和仲裁器502-506的基于龄值的仲裁逻辑562-566可以分别实现为逻辑电路,并且可以包括任意数量的应用专用集成电路(ASIC)。
如图所示,仲裁器502可以接收来自请求器的任意数量的请求520–522,仲裁器504可以接收来自请求器的任意数量的请求524–526,并且,仲裁器506可以接收来自请求器的任意数量的请求528–530。所接收的每个请求可以与流量类相关联。例如,每个请求器可以与流量类相关联,使得在与特定流量类相关联的请求器上接收的请求与该流量类相关联。
在示例中,每个仲裁器可以接收来自不同流量类的请求。具体地,仲裁器502可以从与第一流量类相关联的请求器接收请求520–522,仲裁器504可以从与第二流量类相关联的请求器接收请求524–526,并且,仲裁器506可以从与第三流量类相关联的请求器接收请求528–530。尽管示出六个示例请求器和具有基于龄值的仲裁逻辑的三个示例仲裁器,但是可以实现任意数量的请求器和仲裁器。
请求可由基于龄值的仲裁逻辑562–566接收。基于龄值的仲裁逻辑562-566在接收请求时可以根据如上详述的基于龄值的仲裁方案从接收的请求的每个流量类选择请求。在每个仲裁器接收来自不同流量类的请求的示例中,每个仲裁器的基于龄值的仲裁逻辑可以根据基于龄值的仲裁方案从接收的请求的流量类选择请求。因此,仲裁器502–506可以选择来自每个流量类的请求。
每个流量类的所选请求可以被映射到其相应的流量类。在示例中,或门542-546可以在仲裁器512接收请求之前将这些请求映射到相应的流量类。在本示出的示例中,r0和r1、520和522可以分别通过或门542被映射到第一流量类;r2和r3、524和526可以分别通过或门544被映射到第二流量类;r4和r5、528和530可以分别通过或门546被映射到第三流量类。通过将来自请求器的请求映射到相应的流量类,基于回合的仲裁逻辑560可以根据基于回合的仲裁方案从具有活跃请求的流量类中选择流量类。
仲裁器512在接收到来自请求器r0–r5中的任何一个的请求时可以根据基于回合的仲裁逻辑560从所接收的请求的多个不同的流量类中选择流量类,并且在示例中,可以根据如上详述的基于回合的仲裁方案选择流量类。仲裁器512可以进一步输出任意数量的指示所选择的流量类的控制信号值580,例如580a、580b和580c。在一些示例性实现中,控制信号值可由编码器590接收、被转换并随后由多路复用器和取消选择器570接收。虽然编码器490在本示例中被示为单独的组件,但在一些示例中,编码器490可以包含于仲裁器512或多路复用器和取消选择器570中。
多路复用器和取消选择器570可以接收仲裁器512的指示所选流量类的编码信号输出以及由仲裁器502–506选择的请求,并且可以输出由仲裁器502–506选择,即属于所选流量类的请求中的任一个。请求可以具体地输出到相关联的准许线上。例如,准许可以分别在与请求520-530所发起于的请求器相关联的准许线g0-g5、532-540中的任何一个上进行传送。
图6是用于将请求器映射到流量类以利用混合仲裁方案的示例仲裁系统600的框图。系统600可以包括与器件100类似的架构。为了清楚和简洁,可以参考图1的器件100描述系统600的一些组件,包括具有基于回合的仲裁逻辑150和基于龄值的仲裁逻辑160的仲裁器110。
如图所示,类映射器610可以分别从请求器r0–r5、620–630接收任意数量的请求。所接收的每个请求可以与流量类相关联。在该示例中,类映射器610可以将请求器映射到流量类,使得在映射到特定流量类的请求器上接收的请求与该流量类相关联。在示例中,请求器到流量类的映射可以是可编程的,并且每个请求器可以被编程为映射到流量类。
在图6中示出可编程类映射器的具体示例实现。具体地,与门650–667可分别用“0”或“1”,即块631–648编程,以指示请求器可映射到三个潜在流量类中的哪一个。虚线(例如虚线692)可以指示非活跃信号,而实线(例如实线694)可以指示活跃信号。如图所示,来自属于第一流量类的请求器的请求可由或门670接收,来自属于第二流量类的请求器的请求可由或门672接收,并且,来自属于第三流量类的请求器的请求可由或门674接收。如图所示,请求器620、请求器622和请求器628被映射到或门672,即第二流量类。如图所示,请求器624和请求器626被映射到或门670,即第一流量类,并且,如图所示,请求器628和请求器630被映射到或门674,即第三流量类。因此,每个请求器可以被编程为映射到特定的流量类。虽然在该实施方式中六个示例请求器被映射到三个示例流量类,但任意数量的请求器可以映射到任意数量的流量类。
在从映射到流量类的请求器接收请求的情况下,可以认为该流量类是活跃的。基于回合的仲裁逻辑150可以从类映射器610接收活跃的流量类,并且可以根据上述基于回合的方案中的任一个选择流量类。基于龄值的仲裁逻辑160还可以根据如上所述的基于龄值的仲裁方案从所接收的请求的子集(未示出)选择请求并从所接收请求的每个流量类选择请求。由基于龄值的仲裁逻辑选择并且属于所选择的流量类的请求可以在准许线680–690中的任一个上进行准许。
图7是示出用于实现根据流量类基于龄值的仲裁的方法700的流程图。尽管下面参照系统200描述方法700的执行,但是可以使用用于执行方法700的其它合适组件。另外,用于执行方法700的组件可以分布在多个器件之间。方法700可以以存储在机器可读存储介质上的可执行指令的形式和/或以电子电路(例如硬件)的形式来实现。在一些示例中,方法700的步骤可以基本上同时执行或以与图7所示不同的顺序执行。在一些示例中,方法700可以包括比图7所示更多或更少的步骤。在一些示例中,方法700的步骤中的一些在某些时候可能正在进行和/或可能重复。
在框702处,可以接收属于多个流量类的一组请求,例如请求220–224。在示例中,可以在仲裁器(例如仲裁器202)处接收该一组请求。所接收的每个请求可以与流量类相关联,并且每个请求可以与任意数量的不同流量类相关联。例如,请求220可以与第一流量类相关联,并且请求222可以与第二流量类相关联。在框704处,可以通过基于回合的仲裁逻辑704选择该一组请求的流量类。例如,可以通过仲裁器202的基于回合的仲裁逻辑250选择流量类。可以通过如上所述的基于回合的仲裁方案中的任一个选择流量类。
在框706处,可以根据基于龄值的仲裁逻辑260从所接收的请求的子集的每个流量类选择请求。在示例中,请求的子集可以在仲裁器(诸如仲裁器204)处被接收。请求的子集可以是请求的全集,例如请求220–224,或者请求的子集可以是属于特定流量类(诸如所选择的流量类)集合的请求。可根据上述基于龄值的仲裁方案中的任一个选择来自所接收的请求的每个流量类的请求。在框708处,由基于龄值的仲裁逻辑260选择并且属于所选择的流量类的请求可以被准许,即通过准许线232-236中的任何一个进行准许,并且具体地,可以准许访问共享资源池。
图8是示出用于实现根据流量类基于龄值的仲裁的方法800的流程图。尽管下面参照系统300描述方法800的执行,但是可以使用用于执行方法800的其它合适组件。另外,用于执行方法800的组件可以分布在多个器件之间。方法800可以以存储在机器可读存储介质上的可执行指令的形式和/或以电子电路(例如硬件)的形式来实现。在一些示例中,方法800的步骤可以基本上同时执行或以与图8所示不同的顺序执行。在一些示例中,方法800可以包括比图8所示更多或更少的步骤。在一些示例中,方法800的一些步骤在某些时候可能正在进行和/或可能重复。
在框802处,可以在仲裁器(诸如仲裁器302)处接收属于多个流量类的一组请求,例如请求320–330。所接收的每个请求可以与流量类相关联,并且每个请求可以与任意数量的不同流量类相关联。在框804处,每个接收的请求可以被映射到流量类。在示例中,该映射可能是固定的。例如,或门342–346可以将每个请求器映射到特定流量类,使得来自映射到特定流量类的请求器的请求与该特定流量类相关联。在另一示例中,如以上参照图6描述的那样,请求到流量类的映射可以是可编程的。
在框806处,可以选择该一组请求的流量类。例如,可以通过仲裁器302的基于回合的仲裁逻辑350选择流量类。可以通过如上所述的基于回合的仲裁方案中的任一个选择流量类。通过在根据基于回合的仲裁方案选择流量类之前将请求映射到流量类,可以选择所接收的请求的流量类。
在框808处,选择流量类的仲裁器,例如仲裁器302,可以输出与所选择的流量类相关联的控制信号值。仲裁器302可以进一步输出任意数量的指示所选择的流量类的控制信号值,例如控制信号值380a、控制信号值380b和控制信号值380c。
在框810处,可以过滤与所选择的流量类无关的请求,使得生成属于所选择的流量类的请求子集。例如,控制信号值可以由仲裁器304接收,并且可以具体地由仲裁器304的选择器370接收。例如,可以将控制信号值作为“1”传送到选择器370的与门372–382,从而使得特定请求器从而属于特定流量类的请求能够通过。相反,控制信号值可以作为“0”被传送到选择器380的与门372–382,使得特定请求器的不属于所选择的流量类的请求不能通过。在该示例性实施方式中,控制信号380使得属于在仲裁器302处选择的流量类的请求能够通过选择器370以被基于龄值的仲裁逻辑360接收。因此,控制信号值可以通过使得所选择的流量类的请求子集能够通过选择器而指示所选择的流量类。
在框812处,来自由第二仲裁器(例如仲裁器304)所接收的请求的子集的每个流量类的请求可以根据基于龄值的仲裁逻辑进行选择。可以根据上述基于龄值的仲裁方案中的任一个选择来自所接收的请求的每个流量类的请求。在框814处,由基于龄值的仲裁逻辑360选择并且属于所选择的流量类的请求可以被准许,即通过准许线332-342中的任何一个进行准许,并且具体地,可以准许访问共享资源池。
在上述描述中,阐述了许多细节以提供对这里公开的主题的理解。然而,实现可以在没有这些细节中的一些或全部的情况下进行。其他实现可以包括对上述细节的修改和变化。所附权利要求旨在涵盖这些修改和变化。
Claims (20)
1.一种混合仲裁器件,包括:
基于回合的仲裁逻辑,其用于接收源自多个不同的流量类的第一组请求并从所述多个不同的流量类选择流量类,其中,所述流量类是根据基于回合的仲裁方案而被选择的;以及
基于龄值的仲裁逻辑,其用于接收源自所述多个不同的流量类中的至少一个流量类的第二组请求并且从所接收的所述请求选择来自所述多个不同的流量类中的每一个流量类的请求,其中,所述请求是根据基于龄值的仲裁方案而被选择的,并且
其中,由所述基于龄值的仲裁逻辑选择并且属于由所述基于回合的仲裁逻辑选择的所述流量类的请求被准许访问共享资源池。
2.根据权利要求1所述的混合仲裁器件,其中,所述基于回合的仲裁逻辑输出指示所选择的所述流量类的控制信号值。
3.根据权利要求2所述的混合仲裁器件,还包括选择器,所述选择器用于接收所述信号以及由所述基于龄值的仲裁逻辑选择的每个请求,所述选择器用于准许由所述基于龄值的仲裁逻辑选择并且属于由所述控制信号值指示的所述流量类的请求访问所述共享资源池。
4.根据权利要求1所述的混合仲裁器件,还包括选择器,所述选择器用于接收所述控制信号值并将属于由所述信号指示的所选择的所述流量类的请求传递至所述基于龄值的仲裁逻辑。
5.根据权利要求1所述的混合仲裁器件,还包括类映射器,所述类映射器用于将所述第一组请求的每个请求映射到所述请求所源自的流量类。
6.根据权利要求1所述的混合仲裁器件,其中,所述基于龄值的仲裁逻辑在每个流量类的请求中选择最老旧的请求,或者在所接收的属于所述流量类的所述请求中选择每个流量类中未被选择次数最多的请求。
7.根据权利要求1所述的混合仲裁器件,其中,所述第二组请求是所述第一组请求的请求的子集。
8.一种处理器实现的方法,包括:
接收用于访问共享资源池的一组请求,其中,所述一组请求中的每个请求属于多个流量类中的流量类;
根据基于回合的仲裁逻辑,选择所述多个流量类中的流量类;
根据基于龄值的仲裁逻辑,从所接收的请求的子集的每个流量类选择请求;以及
对由所述基于龄值的仲裁逻辑选择并且属于所选择的所述流量类的请求准许访问共享资源池。
9.根据权利要求8所述的处理器实现的方法,其中,在第一仲裁器处选择所述流量类,并且在第二仲裁器处选择来自每个流量类的所述请求,并且所述方法进一步包括:
输出与在所述第一仲裁器处所选择的所述流量类相关联的控制信号值;以及
通过所述控制信号值从所述一组请求过滤与所选择的所述流量类不相关联的请求,经过滤的所述请求将是在所述第二仲裁器处由所述基于龄值的仲裁逻辑接收的所述请求的所述子集。
10.根据权利要求8所述的处理器实现的方法,其中,所述基于回合的仲裁逻辑在选择所述流量类时将所选择的所述流量类降级为最低优先级。
11.根据权利要求8所述的处理器实现的方法,其中,所选择的所述流量类是根据基于回合的仲裁方案和加权优先级而被选择的。
12.根据权利要求8所述的处理器实现的方法,其中,所述基于龄值的仲裁逻辑选择流量类的最老旧的请求。
13.根据权利要求8所述的处理器实现的方法,其中,所述基于龄值的仲裁逻辑在所接收的属于流量类的所述请求中选择所述流量类的未被选择次数最多的请求。
14.根据权利要求8所述的处理器实现的方法,还包括将所述一组请求中的每个请求映射到所述请求所源自的流量类。
15.根据权利要求8所述的处理器实现的方法,其中,所述一组请求经由请求器被接收,其中,每个请求器被编程为映射到所述多个流量类中的流量类。
16.一种系统,包括:
类映射器,其用于将请求器映射到多个不同的流量类;
基于回合的仲裁逻辑,其用于经由所述请求器接收一组请求,所述基于回合的仲裁逻辑根据基于回合的仲裁方案选择第一流量类并且输出与所选择的所述第一流量类相关联的控制信号;
选择器,其用于:
经由所述请求器接收所述一组请求并且接收所述控制信号;以及
选择由所述控制信号指示的所述第一流量类的请求;以及
基于龄值的仲裁逻辑,其用于:
接收由所述选择器选择的请求;以及
根据基于龄值的仲裁方案选择请求,其中,所选择的所述请求被传送到共享资源池。
17.根据权利要求16所述的系统,其中,所述基于龄值的仲裁逻辑根据所述基于回合的仲裁方案和加权优先级选择第一级流量类。
18.根据权利要求16所述的系统,其中,所述第二仲裁器根据所述基于龄值的仲裁方案选择流量类的最老旧的请求。
19.根据权利要求16所述的系统,其中,所述第二仲裁器根据所述基于龄值的仲裁方案在所接收的属于所述第一流量类的请求中选择所述第一流量类中未被选择次数最多的请求。
20.根据权利要求16所述的系统,其中,所述基于回合的仲裁逻辑根据所述基于回合的仲裁方案在输出与所选择的所述流量类相关联的所述控制信号值时将所选择的所述流量类降级为最低优先级。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/883,911 US10693808B2 (en) | 2018-01-30 | 2018-01-30 | Request arbitration by age and traffic classes |
US15/883,911 | 2018-01-30 | ||
PCT/US2019/015573 WO2019152370A1 (en) | 2018-01-30 | 2019-01-29 | Request arbitration by age and traffic classes |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111466106A true CN111466106A (zh) | 2020-07-28 |
Family
ID=67392517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980006294.XA Pending CN111466106A (zh) | 2018-01-30 | 2019-01-29 | 通过龄值和流量类进行的请求仲裁 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10693808B2 (zh) |
CN (1) | CN111466106A (zh) |
DE (1) | DE112019000592B4 (zh) |
WO (1) | WO2019152370A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11080199B2 (en) * | 2019-03-07 | 2021-08-03 | International Business Machines Corporation | Determining logical address of an oldest memory access request |
CN116028398B (zh) * | 2022-11-01 | 2023-10-31 | 中科计算技术西部研究院 | 一种互连网络仲裁系统、装置、方法及存储介质 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7137119B1 (en) | 2000-05-02 | 2006-11-14 | Microsoft Corporation | Resource manager architecture with resource allocation utilizing priority-based preemption |
US7133399B1 (en) | 2000-10-31 | 2006-11-07 | Chiaro Networks Ltd | System and method for router central arbitration |
US7203202B2 (en) * | 2001-10-31 | 2007-04-10 | Polytechnic University | Arbitration using dual round robin matching with exhaustive service of winning virtual output queue |
US7283558B2 (en) * | 2002-06-04 | 2007-10-16 | Lucent Technologies Inc. | Distributed weighted fair arbitration and forwarding |
US20050246463A1 (en) * | 2004-04-29 | 2005-11-03 | International Business Machines Corporation | Transparent high-speed multistage arbitration system and method |
US7412551B2 (en) | 2004-06-30 | 2008-08-12 | Intel Corporation | Methods and apparatus for supporting programmable burst management schemes on pipelined buses |
US7525986B2 (en) | 2004-10-28 | 2009-04-28 | Intel Corporation | Starvation prevention scheme for a fixed priority PCI-Express arbiter with grant counters using arbitration pools |
US20060101178A1 (en) | 2004-11-08 | 2006-05-11 | Zhong Tina C | Arbitration in a multi-protocol environment |
US7512729B2 (en) | 2005-03-31 | 2009-03-31 | Intel Corporation | Method and apparatus for a high efficiency two-stage rotating priority arbiter with predictable arbitration latency |
US7653069B2 (en) | 2005-12-30 | 2010-01-26 | Intel Corporation | Two stage queue arbitration |
US20080288689A1 (en) * | 2007-05-14 | 2008-11-20 | Brian Hoang | Opportunistic granting arbitration scheme for fixed priority grant counter based arbiter |
EP2504768B1 (en) * | 2009-11-26 | 2015-08-26 | Freescale Semiconductor, Inc. | Integrated circuit and method for reducing violations of a timing constraint |
US8533567B2 (en) * | 2010-08-09 | 2013-09-10 | International Business Machines Corporation | Low delay and area efficient soft error correction in arbitration logic |
US8370553B2 (en) * | 2010-10-18 | 2013-02-05 | International Business Machines Corporation | Formal verification of random priority-based arbiters using property strengthening and underapproximations |
US20150019731A1 (en) * | 2012-04-23 | 2015-01-15 | Google Inc. | Fair Hierarchical Arbitration Of a Shared Resource With Varying Traffic Intensity |
US20160188529A1 (en) | 2014-12-25 | 2016-06-30 | Intel Corporation | Guaranteed quality of service in system-on-a-chip uncore fabric |
US10303631B2 (en) | 2016-03-17 | 2019-05-28 | International Business Machines Corporation | Self-moderating bus arbitration architecture |
-
2018
- 2018-01-30 US US15/883,911 patent/US10693808B2/en active Active
-
2019
- 2019-01-29 WO PCT/US2019/015573 patent/WO2019152370A1/en active Application Filing
- 2019-01-29 CN CN201980006294.XA patent/CN111466106A/zh active Pending
- 2019-01-29 DE DE112019000592.8T patent/DE112019000592B4/de active Active
-
2020
- 2020-06-08 US US16/946,162 patent/US11323390B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
DE112019000592B4 (de) | 2023-01-05 |
US11323390B2 (en) | 2022-05-03 |
WO2019152370A1 (en) | 2019-08-08 |
US20190238482A1 (en) | 2019-08-01 |
DE112019000592T5 (de) | 2021-02-11 |
US10693808B2 (en) | 2020-06-23 |
US20200304424A1 (en) | 2020-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7143219B1 (en) | Multilevel fair priority round robin arbiter | |
US8190801B2 (en) | Interconnect logic for a data processing apparatus | |
US7430622B1 (en) | Extended fairness arbitration for chains of point-to -point devices having multiple virtual channels | |
US9129060B2 (en) | QoS based dynamic execution engine selection | |
JP2009508247A (ja) | バス調停に関する方法及びシステム | |
US9606945B2 (en) | Access controller, router, access controlling method, and computer program | |
US8706940B2 (en) | High fairness variable priority arbitration method | |
EP2033102B1 (en) | Method and apparatus for performing arbitration | |
CN111466106A (zh) | 通过龄值和流量类进行的请求仲裁 | |
US9294301B2 (en) | Selecting between contending data packets to limit latency differences between sources | |
US9330038B2 (en) | Computer arbitration system, bandwidth, allocation apparatus, and method thereof | |
US7930456B1 (en) | Data packet arbitration system | |
US10476810B1 (en) | Network source arbitration | |
KR100973419B1 (ko) | 버스 중재 방법 및 장치 | |
JP2004046782A (ja) | 緊急チャンネルを用いた共有バス仲裁方法及び仲裁装置 | |
TWI559228B (zh) | 可變長度仲裁方法及裝置 | |
US20140050221A1 (en) | Interconnect arrangement | |
TWI849304B (zh) | 用於仲裁對共享資源的存取的系統及方法 | |
US11429437B2 (en) | System for arbitrating between multiple flows | |
US20240354272A1 (en) | End-to-end isolation over pcie | |
WO2022160307A1 (zh) | 一种路由器及片上系统 | |
TWI425363B (zh) | Adjustable Priority System Resource Arbitration Method | |
JP2023114339A (ja) | 車両制御装置及びシステム | |
US20050262281A1 (en) | Managing a shared resource | |
Soloviev | An approach to message arbitration in hard real-time applications |
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 |