好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

提供细粒度仲裁系统的制作方法.docx

5页
  • 卖家[上传人]:ting****789
  • 文档编号:309614907
  • 上传时间:2022-06-13
  • 文档格式:DOCX
  • 文档大小:23.22KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 提供细粒度仲裁系统的制作方法专利名称:提供细粒度仲裁系统的制作方法提供细粒度仲裁系统背景技术:计算机系统通常包括多个不同的系统部件,所述部件经由不同类型的互连(例如共享链路或者直接或点对点链路)彼此进行通信一些系统已经开始并入所谓的片上系统(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例如递减事务消耗的数据突发的大小在该实施例中,当对于相应的信道⑶C变为零或者DUC变为零或者负值时,可为服务选择下一信道因此,如果信道透支其数据账户达某一数量,则在下一仲裁回合将处罚该数量现在参照图1,示出了根据本发明一个实施例的方法的流程图如图1所示,方法100可用于初始化仲裁系统并在正常操作期间在多个系统请求者之间执行仲裁应该注意,虽然此处讨论的是基于优先级的互连仲裁方案,但是实施例并不限于此,而是可以适用于例如基于循环的其它仲裁系统如图1所示,方法100可以通过向多个请求者分派一部分服务开始(方框110)这些多个请求者可以对应于例如S0C的不同代理,每个代理可以与不同信道相关联,并且可以分配给给定请求队列该分派可以基于存储在系统的非易失性存储器内的信息,例如,系统软件(例如基本输入/输出系统(BIOS)或其它这种系统软件)可访问的表。

      本发明的范围并不局限于此,在许多实施例中,对于给定仲裁回合分派一部分服务可以基于不同请求者的优先级这样,可以将不同的部分分派给不同的请求者,并且会发生用于命令和数据单位的不同单位值接下来在方框120处,可以为每个请求者初始化命令单位计数器和数据单位计数器在一个实施例中,可以提供多个这种计数器,相应的命令单位计数器和数据单位计数器与每个请求者相关联在一个实施例中,可将初始化值设置为零,但是本发明的范围并不局限于此此时,完成用于构建仲裁系统的初始化操作还应理解的是,这些初始化操作可以由各种参与者完成,所述参与者包括系统软件和仲裁逻辑(其在一个实施例中可以是互连系统的一部分)然而,仲裁逻辑可以出现在不同系统中的多个位置仍参照图1,此时可以开始正常的系统操作当在用于不同信道的一个或多个请求队列中出现未决请求时,可以为服务选择请求者(方框130)例如,对于给定的仲裁回合,向多个请求者中的每个根据其部分提供服务,其中仲裁回合将例如对共享互连的访问根据每个请求者的给定优先级依此提供给每个请求者的请求在选择了第一请求者(方框130)之后,控制进行到方框140,在其中可以以用于所述请求者的一部分服务更新与该请求者相关联的计数器。

      例如,每个计数器可以递增与所述一部分对应的值以下将讨论具体的例子随后控制进行到菱形150,在其中确定与请求者相关联的两种计数器是否均具有比预定量(例如,零)大的值应该注意的是,虽然结合计数值“零”进行讨论,但是可以理解的是本发明的范围并不局限于此,在不同实施例中,可以提供其它值作为计数器能进行比较的预定阈值因此,可以确定计数值是否符合对应阈值如果计数低于对应阈值,则控制进行到方框160,在其中可以为所述请求者拒绝事务然后控制返回到方框130,用于选择在给定仲裁回合内处理服务请求的下一请求者相反,如果在菱形150处确定两种计数器均大于阈值(例如,零),则控制进行到方框170如方框170所示,当计数器大于阈值量时,可以为请求者许可事务因此,可以将在相应请求队列中存储的给定事务提供给仲裁下的互连然后控制进行到方框180,在其中可以基于事务更新计数器更具体地,在此处描述的实施例中,两种计数器可以相应地递减例如,命令计数器可以递减值1,而数据计数器可以递减与事务相关联的数据的数据宽度对于纯命令事务,因为没有数据进行通信,所以该计数器值可以不改变但是,对于例如写入存储器、读取完成等的数据事务,数据计数器可以递减与事务操作涉及的相应数据的宽度。

      如上所述,随后控制返回到菱形150虽然在图1的实施例中示出该特定实现,但是可以理解的是,本发明的范围并不局限于此现在参照图2,示出了根据本发明实施例的系统的一部分的框图如图2所示,系统200可以是SoC、多核处理器、多芯片模块或任何其它半导体设备的一部分此外,在一些实现中,系统可以对应于包括许多单独部件的基于个人计算机(PC)的系统如图2所示,系统200可以包括多个代理210 (例如,但是本发明的范围并不局限于此,这种代理可以是处理内核、专门功能单元、控制器等如图所示,每个这种代理可以与相应的请求队列220 (例如,22(^-22(^)耦合且相关联每个请求队列可以存储来自相关联代理的事务的请求作为一个例子,每个请求队列可以是先进先出(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可以对应于两个信道(例如,信道I和信道2),并因而对应于两个代理或请求者。

      如图所示,第一信道包含在请求队列210a中按此顺序的事务a、b、c、d,第二信道包含在请求队列210b中按此顺序的事务A、B、C和D在图3的例子中,可以为两个请求队列分派相同的一部分:每仲裁回合2个单位的命令和16个单位的数据(需注意,在各种实现中,用于每个信道的命令和数据的部分可以是不同的)在图3的图示中,除了表外,每个事务还标记有请求数据传输大小在描述多个仲裁回合I和2的文字部分中,图3示出了当执行仲裁方案时与每个请求队列(在回合开始和结束处)相关联的CUC和DUC的值每个请求队列的CUC和DUC在每个仲裁回合递增与所述请求队列相关联的部分当CUC变为零或者DUC变为零或负值时,为服务选择优先级顺序中的下一个信道如图3的回合I开始处所示,对应于所分配的部分服务,信道I和信道2的⑶C和DUC分别被初始设置为值2和16在许可了事务a (大小为零:例如,没有数据传输的读取请求)和b (大小为18)之后,信道I的⑶C和DUC变为O和-2 (负值)因此在该仲裁回合不会再对信道I许可事务相反,为下一服务选择信道2,其中在用于信道2的CUC变为O且其相应的DUC变为负值(即,-1)之前,许可两个事务A和B,其组合大小为2个命令单位和17个数据单位。

      此时,仲裁回合完成因此,新的仲裁回合开始,仲裁器返回到开始信道(信道I)以开始该下一仲裁回合如该下一仲。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.