CN103201726B - 提供细粒度仲裁系统 - Google Patents
提供细粒度仲裁系统 Download PDFInfo
- Publication number
- CN103201726B CN103201726B CN201180053442.7A CN201180053442A CN103201726B CN 103201726 B CN103201726 B CN 103201726B CN 201180053442 A CN201180053442 A CN 201180053442A CN 103201726 B CN103201726 B CN 103201726B
- Authority
- CN
- China
- Prior art keywords
- enumerator
- requestor
- affairs
- agent
- data
- 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
Links
Classifications
-
- 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
-
- 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/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- 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
-
- 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/3625—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
在一个实施例中,本发明包括一种方法,用于在仲裁回合期间选择请求者用于服务,并更新与所选择的请求者相关联的计数器,该计数器包括命令单位计数器和数据单位计数器,确定计数器是否遵照对应阈值,如果遵照则许可用于所选择的请求者的事务,否则拒绝所述事务。描述并要求保护其它实施例。
Description
背景技术
计算机系统通常包括多个不同的系统部件,所述部件经由不同类型的互连(例如共享链路或者直接或点对点链路)彼此进行通信。一些系统已经开始并入所谓的片上系统(SoC)设备,在这种设备中将多个部件并入到单个半导体模具中。此外,一些SoC可以作为嵌入式设备并入到不是基于个人计算机(PC)的多个其它系统中。
不管系统的类型,随着试图通信的部件的数量增加,对例如互连带宽、目标部件等资源的竞争的可能性也增加。为了防止系统中的死锁和停止,可以存在仲裁器以接收来自多个代理的请求,并仲裁这些请求以提供对系统的资源的访问许可。在一些系统中,根据优先级特权来执行仲裁,其中为每个请求者允许一定数量的许可以防止高优先级的请求者“饿死”低优先权的请求者。这种优先级方案可以提供静态的、动态的或者基于递增的优先级。许可操作通常从最高优先级请求者开始,并进行到最低优先级请求者。在一些系统中,较低优先级的请求者仅在较高优先级请求者没有活动的请求或者已经用完它们的许可计数时才能接收许可。
当前仲裁方案通常缺乏对带宽分配的控制,并且会导致低优先级请求者饥饿,尤其是在高/突发业务的情况下和在支持较宽的数据传输长度且越来越多的外围设备存在于系统中时。
附图说明
图1为根据本发明一个实施例的方法的流程图。
图2为根据本发明的实施例的系统的一部分的框图。
图3为示出了根据本发明的实施例的带宽控制算法的操作的图。
图4为根据本发明的实施例的方法的流程图。
图5为根据本发明的一个实施例的系统的框图。
具体实施方式
在各种实施例中,可以为基于优先级的仲裁方案实现细粒度的带宽控制。但是本发明的范围并不局限于此,而是可以结合片上系统(SoC)使用多种实现。许多这种SoC具有经由共享地址总线和共享数据总线(SASD)互连系统互连的多个代理。例如,诸如高级微控制器总线结构(AMBA)高级可扩展接口(AXI)的通用和会聚知识产权(IP)接口协议,或者基于开放核心协议(OCP)的结构提供了不同IP块的模块化采用,这可以在例如微控制器、SoC等的各种系统上实现对广泛的IP重使用和快速的上市时间集成。由于通常具有SASD互连结构的这些设备实施了更多的资源,所以对于异构SoC集成和IP板重用级别的线性增长,复杂性会呈指数级出现。因而,根据本发明实施例的互连仲裁机制可以提供对这种互连的改善性访问以能够进行更高速的通信和降低延迟,提供满足性能和服务质量(QoS)目标且适用于多种应用的互连结构。
在各个实施例中,基于优先级的仲裁方案(例如,可以是静态优先级、动态优先级或者递增优先级)可以用于控制SASD互连系统上的通信。更具体地,实施例可以提供细粒度带宽控制方法,其能够在宽范围的片上通信业务特性进行有效且公平的带宽分配,并防止即使在突发业务的情况下以及依据大数据传输的饥饿。
在一个实施例中,可以在SASD互连系统上对基于优先级的总线仲裁方案采用带宽控制算法。在该算法中,一种方法可以考虑给定传输大小的随附数据的事务请求流,并且提供对仲裁许可的细粒度控制,从而可以最小化或者避免较低优先级设备“饿死”的可能性。
在这种算法中,可以实现基于信道将服务分派到多个信道中的每一个,每个信道可以具有通过单独物理请求队列提供的独立数据流。每个信道可以与给定请求者(例如,代理、总线主控等)相关联。在返回到起始信道之前,对应于基于优先级顺序访问连续信道的队列,对于给定仲裁回合可以为每个这种信道分派一部分服务。在一个实施例中,可以为命令和数据的单位独立地测量该一部分服务。在这种实现中,命令单位可以与称为命令单位计数器(CUC)(在一个实施例中其可以初始化为零)的计数器相关联,而数据单位可以与称为数据单位计数器(DUC)(在该实施例中也可以初始化为零)的计数器相关联。
可以用优先级方式服务信道。当为服务选择给定信道时,可以通过分配给所述信道的命令和数据单位的可编程部分调节CUC和DUC。出于讨论的目的,此处假设基于递增的仲裁方案,其中对于每个回合,用于每个请求者的计数器可以递增用于所述仲裁回合的服务的可编程部分。给定该递增以开始仲裁回合,随着在仲裁回合期间将事务许可给给定请求者,实施例可进一步操作以递减这些计数器,将在以下进一步讨论。
只要CUC和DUC均大于零,则可以将事务许可到所选择的信道。对于每个事务,将CUC例如递减1,并且对DUC例如递减事务消耗的数据突发的大小。在该实施例中,当对于相应的信道CUC变为零或者DUC变为零或者负值时,可为服务选择下一信道。因此,如果信道透支其数据账户达某一数量,则在下一仲裁回合将处罚该数量。
现在参照图1,示出了根据本发明一个实施例的方法的流程图。如图1所示,方法100可用于初始化仲裁系统并在正常操作期间在多个系统请求者之间执行仲裁。应该注意,虽然此处讨论的是基于优先级的互连仲裁方案,但是实施例并不限于此,而是可以适用于例如基于循环的其它仲裁系统。
如图1所示,方法100可以通过向多个请求者分派一部分服务开始(方框110)。这些多个请求者可以对应于例如SoC的不同代理,每个代理可以与不同信道相关联,并且可以分配给给定请求队列。该分派可以基于存储在系统的非易失性存储器内的信息,例如,系统软件(例如基本输入/输出系统(BIOS)或其它这种系统软件)可访问的表。本发明的范围并不局限于此,在许多实施例中,对于给定仲裁回合分派一部分服务可以基于不同请求者的优先级。这样,可以将不同的部分分派给不同的请求者,并且会发生用于命令和数据单位的不同单位值。
接下来在方框120处,可以为每个请求者初始化命令单位计数器和数据单位计数器。在一个实施例中,可以提供多个这种计数器,相应的命令单位计数器和数据单位计数器与每个请求者相关联。在一个实施例中,可将初始化值设置为零,但是本发明的范围并不局限于此。此时,完成用于构建仲裁系统的初始化操作。还应理解的是,这些初始化操作可以由各种参与者完成,所述参与者包括系统软件和仲裁逻辑(其在一个实施例中可以是互连系统的一部分)。然而,仲裁逻辑可以出现在不同系统中的多个位置。
仍参照图1,此时可以开始正常的系统操作。当在用于不同信道的一个或多个请求队列中出现未决请求时,可以为服务选择请求者(方框130)。例如,对于给定的仲裁回合,向多个请求者中的每个根据其部分提供服务,其中仲裁回合将例如对共享互连的访问根据每个请求者的给定优先级依此提供给每个请求者的请求。在选择了第一请求者(方框130)之后,控制进行到方框140,在其中可以以用于所述请求者的一部分服务更新与该请求者相关联的计数器。例如,每个计数器可以递增与所述一部分对应的值。以下将讨论具体的例子。随后控制进行到菱形150,在其中确定与请求者相关联的两种计数器是否均具有比预定量(例如,零)大的值。应该注意的是,虽然结合计数值“零”进行讨论,但是可以理解的是本发明的范围并不局限于此,在不同实施例中,可以提供其它值作为计数器能进行比较的预定阈值。因此,可以确定计数值是否符合对应阈值。如果计数低于对应阈值,则控制进行到方框160,在其中可以为所述请求者拒绝事务。然后控制返回到方框130,用于选择在给定仲裁回合内处理服务请求的下一请求者。
相反,如果在菱形150处确定两种计数器均大于阈值(例如,零),则控制进行到方框170。如方框170所示,当计数器大于阈值量时,可以为请求者许可事务。因此,可以将在相应请求队列中存储的给定事务提供给仲裁下的互连。然后控制进行到方框180,在其中可以基于事务更新计数器。更具体地,在此处描述的实施例中,两种计数器可以相应地递减。例如,命令计数器可以递减值1,而数据计数器可以递减与事务相关联的数据的数据宽度。对于纯命令事务,因为没有数据进行通信,所以该计数器值可以不改变。但是,对于例如写入存储器、读取完成等的数据事务,数据计数器可以递减与事务操作涉及的相应数据的宽度。如上所述,随后控制返回到菱形150。虽然在图1的实施例中示出该特定实现,但是可以理解的是,本发明的范围并不局限于此。
现在参照图2,示出了根据本发明实施例的系统的一部分的框图。如图2所示,系统200可以是SoC、多核处理器、多芯片模块或任何其它半导体设备的一部分。此外,在一些实现中,系统可以对应于包括许多单独部件的基于个人计算机(PC)的系统。
如图2所示,系统200可以包括多个代理210(例如,2101-210n)。但是本发明的范围并不局限于此,这种代理可以是处理内核、专门功能单元、控制器等。如图所示,每个这种代理可以与相应的请求队列220(例如,2201-220n)耦合且相关联。每个请求队列可以存储来自相关联代理的事务的请求。作为一个例子,每个请求队列可以是先进先出(FIFO)或者可以是其它类型缓冲器。如图所示,这些请求队列中的每个可以耦合到共享互连230,例如,SASD互连。
如图2进一步示出的,每个请求队列可以耦合到仲裁器逻辑250。如上所讨论的,仲裁器逻辑250可以是独立的逻辑,或者可以是例如内核或其它处理单元的另一处理实体的一部分。在各种实施例中,逻辑250可以包括各种硬件、固件和/或软件。通常,仲裁器逻辑250可以依照图1所阐述的方法100进行操作,以基于信道的优先级并依照本文所描述的细粒度仲裁方法将对共享互连230的访问许可给给定信道。
为了进行这种操作,仲裁器逻辑250可以耦合到储存器260,储存器260可以是高速缓冲储存器的一部分或者其它临时性储存器,以存储与各个计数器相关联的信息。在一些实施例中,储存器260可以是与仲裁器逻辑250相关联的一组寄存器。如图所示,存在第一计数器265和第二计数器268,第一计数器265可以对应于命令单位计数器,而第二计数器268可以对应于数据单位计数器。可以理解的是,这些计数器电路中的每个可以包括多个计数器或条目,从而为每个相应的代理提供每个这些计数器中的单独一个(例如,单个CUC和单个DUC)。虽然在图2的实施例中示出该特定实现,但是可以理解的是,本发明的范围并不局限于此。也就是说,在许多实施例中,给定系统可以包括更多部件并提供设备间的不同连接。
例如,在一个实施例中,逻辑250可以包括用于活动信道的计数器,并且当选择用于仲裁的信道时,可以为所述计数器提供来自储存器260的存储于相应CUC和DUC计数器中的值。此外,逻辑250可以包括其它电路,例如加法器、减法器、比较器、AND门等,以执行根据本发明实施例的仲裁方法。
图3图示出了根据本发明的实施例的带宽控制算法的操作。在图3中,两个输入请求队列210a和210b可以对应于两个信道(例如,信道1和信道2),并因而对应于两个代理或请求者。如图所示,第一信道包含在请求队列210a中按此顺序的事务a、b、c、d,第二信道包含在请求队列210b中按此顺序的事务A、B、C和D。在图3的例子中,可以为两个请求队列分派相同的一部分:每仲裁回合2个单位的命令和16个单位的数据(需注意,在各种实现中,用于每个信道的命令和数据的部分可以是不同的)。在图3的图示中,除了表外,每个事务还标记有请求数据传输大小。在描述多个仲裁回合1和2的文字部分中,图3示出了当执行仲裁方案时与每个请求队列(在回合开始和结束处)相关联的CUC和DUC的值。每个请求队列的CUC和DUC在每个仲裁回合递增与所述请求队列相关联的部分。当CUC变为零或者DUC变为零或负值时,为服务选择优先级顺序中的下一个信道。
如图3的回合1开始处所示,对应于所分配的部分服务,信道1和信道2的CUC和DUC分别被初始设置为值2和16。在许可了事务a(大小为零:例如,没有数据传输的读取请求)和b(大小为18)之后,信道1的CUC和DUC变为0和-2(负值)。因此在该仲裁回合不会再对信道1许可事务。相反,为下一服务选择信道2,其中在用于信道2的CUC变为0且其相应的DUC变为负值(即,-1)之前,许可两个事务A和B,其组合大小为2个命令单位和17个数据单位。
此时,仲裁回合完成。因此,新的仲裁回合开始,仲裁器返回到开始信道(信道1)以开始该下一仲裁回合。如该下一仲裁回合(回合2)开始处所示,可以为用于信道1的CUC和DUC增加2个命令单位和16个数据单位的新部分,为命令留下值2且为数据留下值14,这现在允许请求在第二仲裁回合许可c和d。此时,用于信道1的CUC再次达到零,并因而在该仲裁回合不会再对信道1许可事务。相反,在该第二仲裁回合,接下来为下一服务选择信道2。这里,可以将2个命令单位和16个数据单位的新部分分别增加到用于信道2的CUC和DUC,为命令留下值2且为数据留下值15,这现在允许请求在第二仲裁回合许可C和D用于信道2。
在一个实施例中,用于命令和数据的服务的部分是可编程的,并且还可与命令和数据总线的带宽成比例。只要CUC和DUC均大于零(在上述实施例中),就能够从所述信道许可事务,CUC递减1并且DUC递减事务将消耗的数据突发的宽度。然后当CUD变为零或者DUC变为零或负值时,信道的轮次结束并且数据带宽的剩余的过度使用作为信用继续存在到下一仲裁回合。
因而在各个实施例中,即使存在差别很大的数据长度请求时,也能够实现对命令总线和数据总线的精确的带宽控制。此外,对每个信道的命令和数据部分的独立控制可以提供对宽范围命令业务特性的适应性。同时,命令和数据部分的可编程性可以允许这种值在硅之后(aftersilicon)被设置(例如,在启动时由启动只读存储器(ROM)配置固件和/或由操作系统(OS)配置)。此外,每当确定当前分派的命令或数据部分不足以用于依赖平台的调度策略、服务质量(QoS)维度或者系统资源的公平共享时,可以在运行时由驱动器或者平台系统软件或者由平台管理引擎配置立即配置这些部分。
并且在一些实现中,在正常的系统操作期间对分派给不同请求者的部分的动态更新能以定期的基础执行。或者,可以基于能在系统操作期间进行分析的某些度量更新服务的这些部分。但是本发明的范围并不局限于此,在一些实施例中,例如内核、专用处理器或其它逻辑单元(在一些实施例中可以是仲裁器本身)的控制器可以执行代码(例如,驱动器或者平台系统软件或者其它这种软件),以实现对部分服务分配的分析和可能的更新。
现在参照图4,示出了根据本发明的实施例的方法的流程图。如图4所示,方法300可以在系统操作期间执行,以确定分配的部分是否合适,如果不合适则采取校正动作。在一个实施例中,例如通用处理内核或其它代理的控制器可以执行所述方法。
如图所示,方法300可以通过接收关于分配到多个请求者的部分服务的信息开始(方框310)。例如,控制器可以接收存储于非易失性储存器中的信息,以指示将部分服务分配提供给多个请求者中的每一个。例如,返回结合图3,假设只有两个请求者,为每一个都提供有相等的部分服务分配(例如,为每个仲裁回合分配相同数量的命令单位和数据单位)。
方法300可以继续,分析仲裁的多个回合以确定请求者消耗信息(方框320)。例如,随着多个仲裁回合的进行,例如,基于分析在与不同请求者相关联的请求队列中未决事务的量,控制器可以确定请求者消耗信息。自然在其它实施例中,可以实现确定请求者消耗信息的其它方式。例如,替代或除了关于请求队列的信息,还可以考虑关于分配给每个请求者的共享互连上带宽的量的信息。
接下来,控制进行到菱形330,在其中基于该请求者消耗信息确定消耗是否在策略限制内。例如,可以设置预定的策略限制以指示例如待分配给每个请求者的互连带宽的量。在一个实施例中,这些策略限制可对应于待分配给每个请求者的带宽的百分比。自然,策略限制可以采用其它形式,例如使用时间。如果确定消耗在这些策略限制以内,则方法300可以结束。相反,如果确定消耗不在策略限制以内,则控制进行到方框340,在其中可以基于策略调节部分服务分配。例如,可以为每个请求者设置部分服务分配的不同量。
在这种更新之后,每个请求者可以接收不相等量的部分服务分配。例如,第一(以及更高优先级)请求者可以接收更多的命令单位作为其部分服务分配(例如,2:1的比率),另外该第一请求者还可以接收另外的数据单位分配(例如,再次依据2:1或者其它这种比率)。随后,这些更新的部分服务分配可以存储于从中获得原始分配的同一非易失性储存器中(例如,覆写原始分配)。或者,当由固件设置原始分配时,可以将新的分配存储于另一存储单元,从而在系统的另一运行时,原始分配能再次用于设置部分服务分配。虽然在图4的实施例中示出该特定的实现,但是可以理解的是本发明的范围并不限于此。
应该注意的是,根据本发明的实施例的SoC可以是各种类型的设计,包括多内核和众内核处理器设计,具有例如内核、高速缓存、加速器、存储控制器等另外的代理。SoC可以用于许多不同系统中。作为一个特定例子,根据本发明的实施例的SoC可以并入到例如笔记本计算机的计算机系统中。现在参照图5,示出了根据本发明的一个实施例的系统的框图。如图5所示,系统500可以是笔记本或者其它小型计算机。
如图所示,SoC510可以是例如关于图2在以上所述的根据本发明的实施例的SoC。存储器520在一个实施例中可以是动态随机存取存储器(DRAM),由于SoC可以包括集成存储控制器,存储器520可以耦合到SoC510。另外,由于SoC还可以包括图形功能,SoC510可以耦合到显示器530,例如液晶显示器(LCD)、触摸面板或者其它这种显示器。另外,SoC510可以耦合到输入/输出控制中心(ICH)550,ICH550接着耦合到例如闪速存储器540的各种系统部件,闪速存储器540在一个实施例中可以用作用于系统的大容量存储系统,这是因为其小形状因素适用于笔记本或其它小设备。另外,ICH550可以耦合到无线接口560,无线接口560能够例如经由依照电气与电子工程师协会(IEEE)802.11或其它这种标准的诸如BluetoothTM连接、无线LAN(WLAN)的局域网(LAN)进行通信。另外,无线接口560还可以经由诸如蜂窝通信网络的广域网进行通信。ICH550还可以耦合到一个或多个IO设备570,例如键盘、鼠标、指针或其它用户接口设备。虽然在图5的实施例中示出了该特定实现,但是本发明的范围并不局限于此。
虽然结合有限数量的实施例描述了本发明,但是本领域的技术人员将从中意识到多种修改和变型。意图是,随附的权利要求覆盖所有这种落入本发明的实质精神和范围内的修改和变型。
Claims (20)
1.一种用于提供细粒度仲裁的方法,包括:
选择多个请求者中的一个用于服务,并且更新与所选择的请求者相关联的第一计数器和第二计数器,其中所述第一计数器对应于命令单位计数器,而所述第二计数器对应于数据单位计数器,其中所述第一计数器用于存储与业务的命令部分相关联的第一计数值,所述第二计数器用于存储与所述业务的数据部分相关联的第二计数值;
确定所述第一计数器和所述第二计数器中的每一个是否遵照用于所述第一计数器和所述第二计数器的对应阈值;以及
如果遵照,则对所述选择的请求者许可事务,否则对所述选择的请求者拒绝事务。
2.根据权利要求1所述的方法,还包括:基于所述事务更新所述第一计数器和所述第二计数器。
3.根据权利要求2所述的方法,还包括:基于所述选择的请求者的优先级和所述多个请求者中每一个的优先级,选择所述选择的请求者。
4.根据权利要求1所述的方法,还包括:对所述选择的请求者许可连续多个事务,而至少一个其他请求者未被许可任何事务。
5.根据权利要求4所述的方法,还包括:在所述连续多个事务中的每一个之后,反复更新所述第一计数器和所述第二计数器。
6.根据权利要求5所述的方法,还包括:许可所述连续多个事务,直到所述第一计数器和所述第二计数器中的至少一个不遵照所述对应阈值。
7.根据权利要求1所述的方法,还包括:响应于所述第一计数器和所述第二计数器中的至少一个不遵照所述对应阈值,选择第二请求者用于服务。
8.根据权利要求1所述的方法,其中,如果所述第一计数器达到零值,则所述第一计数器未遵照;如果所述第二计数器达到零值或负值,则所述第二计数器未遵照。
9.根据权利要求8所述的方法,还包括:在下一仲裁回合的开始,所述第二计数器借入所述负值的量。
10.根据权利要求1所述的方法,还包括:将用于仲裁回合的部分服务分派给所述多个请求者中的每一个。
11.一种用于提供细粒度仲裁的装置,包括:
第一计数器电路,包括多个第一计数器,每个所述第一计数器与请求者相关联并存储分配给相应请求者的命令单位的计数,所述命令单位中的每个与业务的命令部分相对应;
第二计数器电路,包括多个第二计数器,每个所述第二计数器与请求者相关联并存储分配给相应请求者的数据单位的计数,所述数据单位中的每个与业务的数据部分相对应;以及
仲裁器,其耦合到所述第一计数器电路和所述第二计数器电路,以选择多个请求者中的一个用于服务,并且如果与所述选择的请求者相关联的第一计数器和第二计数器遵照对应阈值,则许可所述请求者的事务访问互连,否则拒绝所述请求者的事务。
12.根据权利要求11所述的装置,其中,所述装置包括片上系统,所述片上系统包括多个代理,每个代理对应于一个请求者,并且其中许可的事务将在共享互连上进行通信。
13.根据权利要求11所述的装置,其中,所述仲裁器用于对所述选择的请求者许可连续多个事务,而至少一个其他请求者未被许可任何事务。
14.根据权利要求13所述的装置,其中,所述仲裁器用于在所述连续多个事务的每一个之后,反复更新所述第一计数器和所述第二计数器;并且许可所述连续多个事务,直到所述第一计数器和所述第二计数器中的至少一个不遵照所述对应阈值。
15.根据权利要求11所述的装置,还包括耦合到所述仲裁器的控制器,其中基于请求者消耗信息,所述控制器调节分配给所述多个请求者中至少一些请求者的部分服务。
16.根据权利要求15所述的装置,其中,所述控制器动态调节所述部分服务。
17.根据权利要求15所述的装置,其中,所述控制器确定所述请求者消耗信息是否指示所述消耗在消耗策略限制以内,如果所述消耗未在所述消耗策略限制以内则调节所述部分服务。
18.一种用于提供细粒度仲裁的系统,包括:
第一代理,用于执行数据上的操作;
第二代理,用于执行数据上的操作;
耦合到所述第一代理和所述第二代理的共享互连;
命令单位计数器,用于存储分配给所述第一代理和所述第二代理的命令单位的计数,所述命令单位中的每个与业务的命令部分相对应;
数据单位计数器,用于存储分配给所述第一代理和所述第二代理的数据单位的计数,所述数据单位中的每个与业务的数据部分相对应;以及
仲裁器,其耦合到所述命令单位计数器和所述数据单位计数器,以选择所述第一代理和所述第二代理中的一个,以便如果与所选择的代理相关联的所述命令单位计数器和所述数据单位计数器高于对应阈值,则使得所述选择的代理能够访问所述共享互连,否则阻止所述选择的代理访问所述共享互连。
19.根据权利要求18所述的系统,其中,所述仲裁器用于许可所述选择的代理的连续多个事务访问所述共享互连,而不许可其他代理的事务访问所述共享互连。
20.根据权利要求18所述的系统,还包括耦合到所述仲裁器的控制器,其中基于所述第一代理和所述第二代理的消耗信息与相应消耗策略限制的对比,所述控制器动态调节分配给所述第一代理和所述第二代理的部分服务。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/877,871 US8667197B2 (en) | 2010-09-08 | 2010-09-08 | Providing a fine-grained arbitration system |
US12/877,871 | 2010-09-08 | ||
PCT/US2011/047038 WO2012033588A2 (en) | 2010-09-08 | 2011-08-09 | Providing a fine-grained arbitration system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103201726A CN103201726A (zh) | 2013-07-10 |
CN103201726B true CN103201726B (zh) | 2016-06-29 |
Family
ID=45771486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180053442.7A Active CN103201726B (zh) | 2010-09-08 | 2011-08-09 | 提供细粒度仲裁系统 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8667197B2 (zh) |
KR (1) | KR101478516B1 (zh) |
CN (1) | CN103201726B (zh) |
TW (1) | TWI526835B (zh) |
WO (1) | WO2012033588A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8667197B2 (en) * | 2010-09-08 | 2014-03-04 | Intel Corporation | Providing a fine-grained arbitration system |
US9507737B2 (en) * | 2012-09-19 | 2016-11-29 | Arm Limited | Arbitration circuitry and method |
US9135179B2 (en) * | 2013-05-01 | 2015-09-15 | Qualcomm, Incorporated | System and method of arbitrating cache requests |
CN103246623B (zh) * | 2013-05-20 | 2016-08-31 | 杭州士兰控股有限公司 | Soc计算设备扩展系统 |
JP6201591B2 (ja) * | 2013-09-30 | 2017-09-27 | 富士通株式会社 | 情報処理装置および情報処理装置の制御方法 |
WO2015067295A1 (en) * | 2013-11-05 | 2015-05-14 | Huawei Technologies Co., Ltd. | Method and arrangement for controlling requests to a shared electronic resource |
US10372642B2 (en) | 2016-09-29 | 2019-08-06 | Intel Corporation | System, apparatus and method for performing distributed arbitration |
US10861504B2 (en) | 2017-10-05 | 2020-12-08 | Advanced Micro Devices, Inc. | Dynamic control of multi-region fabric |
US10558591B2 (en) * | 2017-10-09 | 2020-02-11 | Advanced Micro Devices, Inc. | Method and apparatus for in-band priority adjustment forwarding in a communication fabric |
US11196657B2 (en) | 2017-12-21 | 2021-12-07 | Advanced Micro Devices, Inc. | Self identifying interconnect topology |
US11321135B2 (en) * | 2019-10-31 | 2022-05-03 | Oracle International Corporation | Rate limiting compliance assessments with multi-layer fair share scheduling |
US11507522B2 (en) | 2019-12-06 | 2022-11-22 | Advanced Micro Devices, Inc. | Memory request priority assignment techniques for parallel processors |
US11223575B2 (en) | 2019-12-23 | 2022-01-11 | Advanced Micro Devices, Inc. | Re-purposing byte enables as clock enables for power savings |
CN115640257A (zh) * | 2022-12-14 | 2023-01-24 | 摩尔线程智能科技(北京)有限责任公司 | 用于片上网络的通路仲裁方法、仲裁器以及片上路由器 |
CN118331905B (zh) * | 2024-06-12 | 2024-08-06 | 西北工业大学 | 一种可扩展的片上互联总线结构 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311255B1 (en) * | 1999-04-29 | 2001-10-30 | International Business Machines Corporation | System and method for selectively restricting access to memory for bus attached unit IDs |
US6804738B2 (en) * | 2001-10-12 | 2004-10-12 | Sonics, Inc. | Method and apparatus for scheduling a resource to meet quality-of-service restrictions |
CN1770130A (zh) * | 2004-11-01 | 2006-05-10 | 松下电器产业株式会社 | 总线控制器件及方法、仲裁器件及方法和集成电路器件 |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3781821A (en) | 1972-06-02 | 1973-12-25 | Ibm | Selective shift register |
US4161779A (en) | 1977-11-30 | 1979-07-17 | Burroughs Corporation | Dynamic priority system for controlling the access of stations to a shared device |
US4682282A (en) | 1984-10-25 | 1987-07-21 | Unisys Corp. | Minimum latency tie-breaking arbitration logic circuitry |
US5151994A (en) | 1989-11-13 | 1992-09-29 | Hewlett Packard Company | Distributed fair arbitration system using separate grant and request lines for providing access to data communication bus |
US5164938A (en) * | 1991-03-28 | 1992-11-17 | Sprint International Communications Corp. | Bandwidth seizing in integrated services networks |
US5440752A (en) | 1991-07-08 | 1995-08-08 | Seiko Epson Corporation | Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU |
US5239631A (en) * | 1991-10-15 | 1993-08-24 | International Business Machines Corporation | Cpu bus allocation control |
US5241632A (en) | 1992-01-30 | 1993-08-31 | Digital Equipment Corporation | Programmable priority arbiter |
US5572686A (en) * | 1995-06-05 | 1996-11-05 | Apple Computer, Inc. | Bus arbitration scheme with priority switching and timer |
US5778200A (en) | 1995-11-21 | 1998-07-07 | Advanced Micro Devices, Inc. | Bus arbiter including aging factor counters to dynamically vary arbitration priority |
US5896539A (en) | 1997-04-14 | 1999-04-20 | International Business Machines Corporation | Method and system for controlling access to a shared resource in a data processing system utilizing dynamically-determined weighted pseudo-random priorities |
US5996037A (en) * | 1997-06-03 | 1999-11-30 | Lsi Logic Corporation | System and method for arbitrating multi-function access to a system bus |
JP4076724B2 (ja) * | 1998-02-24 | 2008-04-16 | シーゲイト テクノロジー エルエルシー | ダイナミック半二重によるループ・フェアネスの保持 |
US6073132A (en) | 1998-03-27 | 2000-06-06 | Lsi Logic Corporation | Priority arbiter with shifting sequential priority scheme |
US6209053B1 (en) * | 1998-08-28 | 2001-03-27 | Intel Corporation | Method and apparatus for operating an adaptive multiplexed address and data bus within a computer system |
US6574688B1 (en) | 1999-01-05 | 2003-06-03 | Agere Systems Inc. | Port manager controller for connecting various function modules |
GB9919208D0 (en) | 1999-08-13 | 1999-10-20 | Sgs Thomson Microelectronics | An arbiter and a method of arbitrating |
US6651125B2 (en) * | 1999-09-28 | 2003-11-18 | International Business Machines Corporation | Processing channel subsystem pending I/O work queues based on priorities |
US6347351B1 (en) * | 1999-11-03 | 2002-02-12 | Intel Corporation | Method and apparatus for supporting multi-clock propagation in a computer system having a point to point half duplex interconnect |
JP4554016B2 (ja) * | 2000-01-20 | 2010-09-29 | 富士通株式会社 | バス使用効率を高めた集積回路装置のバス制御方式 |
US6631433B1 (en) * | 2000-09-27 | 2003-10-07 | Emc Corporation | Bus arbiter for a data storage system |
US6735653B2 (en) * | 2001-02-16 | 2004-05-11 | Koninklijke Philips Electronics N.V. | Bus bandwidth consumption profiler |
US6636482B2 (en) * | 2001-03-08 | 2003-10-21 | Arris International, Inc. | Method and apparatus for controlling traffic loading of different service levels in a cable data system |
TW200825907A (en) | 2001-06-19 | 2008-06-16 | Intel Corp | Method of assigning thread priority in a multi-threaded processor, multi-threaded processor, computer system and storage medium |
JP3732139B2 (ja) * | 2001-10-29 | 2006-01-05 | 三菱電機株式会社 | メモリ制御回路及びメモリバスの調停方法 |
US7080174B1 (en) | 2001-12-21 | 2006-07-18 | Unisys Corporation | System and method for managing input/output requests using a fairness throttle |
US6954811B2 (en) * | 2002-07-19 | 2005-10-11 | Calix Networks, Inc. | Arbiter for an input buffered communication switch |
US7359322B2 (en) * | 2002-08-12 | 2008-04-15 | Telcordia Technologies, Inc. | Dynamic bandwidth reallocation |
US20040059879A1 (en) | 2002-09-23 | 2004-03-25 | Rogers Paul L. | Access priority protocol for computer system |
US7284080B2 (en) * | 2003-07-07 | 2007-10-16 | Sigmatel, Inc. | Memory bus assignment for functional devices in an audio/video signal processing system |
US7350003B2 (en) | 2003-09-25 | 2008-03-25 | Intel Corporation | Method, system, and apparatus for an adaptive weighted arbiter |
US20050160188A1 (en) | 2004-01-20 | 2005-07-21 | Zohar Bogin | Method and apparatus to manage memory access requests |
US7107376B2 (en) * | 2004-01-26 | 2006-09-12 | International Business Machines Corp. | Systems and methods for bandwidth shaping |
US7231475B1 (en) * | 2004-01-30 | 2007-06-12 | Cisco Technology, Inc. | Advanced bandwidth allocation in PCI bus architecture |
JP4480427B2 (ja) * | 2004-03-12 | 2010-06-16 | パナソニック株式会社 | リソース管理装置 |
JP4222251B2 (ja) * | 2004-04-27 | 2009-02-12 | ソニー株式会社 | バス調停装置およびバス調停方法 |
US20060039333A1 (en) | 2004-08-19 | 2006-02-23 | Dell Products L.P. | Information handling system including wireless bandwidth management feature |
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 |
US8104054B2 (en) * | 2005-09-01 | 2012-01-24 | At&T Intellectual Property I, L.P. | Methods, systems, and devices for bandwidth conservation |
GB0519981D0 (en) | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
US8464066B1 (en) * | 2006-06-30 | 2013-06-11 | Amazon Technologies, Inc. | Method and system for sharing segments of multimedia data |
US20080091866A1 (en) | 2006-10-12 | 2008-04-17 | International Business Machines Corporation | Maintaining forward progress in a shared L2 by detecting and breaking up requestor starvation |
JP4996929B2 (ja) | 2007-01-17 | 2012-08-08 | 株式会社日立製作所 | 仮想計算機システム |
US20080288689A1 (en) | 2007-05-14 | 2008-11-20 | Brian Hoang | Opportunistic granting arbitration scheme for fixed priority grant counter based arbiter |
US7685346B2 (en) * | 2007-06-26 | 2010-03-23 | Intel Corporation | Demotion-based arbitration |
US8121124B2 (en) * | 2009-06-16 | 2012-02-21 | Calix, Inc. | Applying adaptive thresholds to multicast streams within computer networks |
US8307138B2 (en) * | 2010-07-12 | 2012-11-06 | Arm Limited | Apparatus and method for controlling issuing of transaction requests |
US8667197B2 (en) * | 2010-09-08 | 2014-03-04 | Intel Corporation | Providing a fine-grained arbitration system |
-
2010
- 2010-09-08 US US12/877,871 patent/US8667197B2/en not_active Expired - Fee Related
-
2011
- 2011-08-09 CN CN201180053442.7A patent/CN103201726B/zh active Active
- 2011-08-09 WO PCT/US2011/047038 patent/WO2012033588A2/en active Application Filing
- 2011-08-09 KR KR20137008238A patent/KR101478516B1/ko not_active IP Right Cessation
- 2011-08-15 TW TW100129077A patent/TWI526835B/zh active
-
2014
- 2014-01-31 US US14/169,515 patent/US9390039B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6311255B1 (en) * | 1999-04-29 | 2001-10-30 | International Business Machines Corporation | System and method for selectively restricting access to memory for bus attached unit IDs |
US6804738B2 (en) * | 2001-10-12 | 2004-10-12 | Sonics, Inc. | Method and apparatus for scheduling a resource to meet quality-of-service restrictions |
CN1770130A (zh) * | 2004-11-01 | 2006-05-10 | 松下电器产业株式会社 | 总线控制器件及方法、仲裁器件及方法和集成电路器件 |
Also Published As
Publication number | Publication date |
---|---|
US20120059962A1 (en) | 2012-03-08 |
KR20130055005A (ko) | 2013-05-27 |
US8667197B2 (en) | 2014-03-04 |
TW201224760A (en) | 2012-06-16 |
US9390039B2 (en) | 2016-07-12 |
TWI526835B (zh) | 2016-03-21 |
WO2012033588A3 (en) | 2012-05-10 |
KR101478516B1 (ko) | 2015-01-02 |
CN103201726A (zh) | 2013-07-10 |
WO2012033588A2 (en) | 2012-03-15 |
US20140149620A1 (en) | 2014-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103201726B (zh) | 提供细粒度仲裁系统 | |
US6473817B2 (en) | Method and apparatus for efficient bus arbitration | |
US6804738B2 (en) | Method and apparatus for scheduling a resource to meet quality-of-service restrictions | |
US5784569A (en) | Guaranteed bandwidth allocation method in a computer system for input/output data transfers | |
US7769936B2 (en) | Data processing apparatus and method for arbitrating between messages routed over a communication channel | |
US20050138621A1 (en) | Method of resource allocation using an access control mechanism | |
US6519666B1 (en) | Arbitration scheme for optimal performance | |
US20080288689A1 (en) | Opportunistic granting arbitration scheme for fixed priority grant counter based arbiter | |
US6996647B2 (en) | Token swapping for hot spot management | |
EP1820107A2 (en) | Streaming memory controller | |
US7617344B2 (en) | Methods and apparatus for controlling access to resources in an information processing system | |
KR102605127B1 (ko) | 계층적 대역폭 할당 버스 중재기 | |
EP1678620B1 (en) | Scheduling memory access between a plurality of processors | |
KR101537034B1 (ko) | 스트림 트랜잭션(들)에 관련된 정보에 기초한 스트림 트랜잭션들의 중재 | |
Weber et al. | A quality-of-service mechanism for interconnection networks in system-on-chips | |
KR20180054836A (ko) | 어그리게이팅된 mmu(memory management unit)들을 사용한 메모리 관리 기능성의 제공 | |
US7080174B1 (en) | System and method for managing input/output requests using a fairness throttle | |
US6430640B1 (en) | Self-arbitrating, self-granting resource access | |
US6889283B2 (en) | Method and system to promote arbitration priority in a buffer queue | |
CN118170517A (zh) | 一种调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |