发布信息

从项目池中选择要与给定请求相关联的选定项目的制作方法 专利技术说明

作者:admin      2022-12-06 19:04:31     286



计算;推算;计数设备的制造及其应用技术从项目池中选择要与给定请求相关联的选定项目背景技术:1.本技术涉及数据处理领域。2.在数据处理系统中,可以提供接口电路以接收请求,并且可以提供选择电路以选择要与请求相关联的项目。技术实现要素:3.从一个示例来看,本技术提供了一种装置,该装置包括:4.接口电路,该接口电路用于接收请求;以及5.选择电路,该选择电路响应于接口电路接收到给定请求而从项目池中选择要与给定请求相关联的至少一个选定项目;6.其中选择电路包括多个节点,每个节点被配置为从提供给该节点的n个输入信号选择m个输出信号,其中n》m;7.其中多个节点以树结构进行布置,树结构包括多个层,多个层至少包括第一层节点和包括最终节点的最终层,第一层节点被配置为接收指示项目池中的项目的输入信号,并且最终节点被配置为输出指示至少一个选定项目的信号,来自除最终节点之外的给定节点层的输出信号被提供为后续层的输入信号;并且8.其中该装置包括控制电路,控制电路被配置为根据给定请求的类型输出抑制信号,并且树结构包括门极节点,门极节点被配置为响应于抑制信号具有第一值而抑制根据从树结构的给定部分接收的输入信号进行选择,以防止针对至少一种类型的请求选择项目池的子集。9.从另一个示例来看,本技术提供了一种方法,该方法包括:10.接收请求;以及11.响应于接收到给定请求,从项目池选择要与给定请求相关联的至少一个选定项目;12.其中选定项目是使用包括多个节点的选择电路来选择的,每个节点被配置为从提供给该节点的n个输入信号选择m个输出信号,其中n》m;13.其中多个节点以树结构进行布置,树结构包括多个层,多个层至少包括第一层节点和包括最终节点的最终层,第一层节点被配置为接收指示项目池中的项目的输入信号,并且最终节点被配置为输出指示至少一个选定项目的信号,来自除最终节点之外的给定节点层的输出信号被提供为后续层的输入信号;并且14.其中该方法包括根据给定请求的类型输出抑制信号,并且在门极节点处且响应于抑制信号具有第一值而抑制根据从树结构的给定部分接收的输入信号进行选择,以防止针对至少一种类型的请求选择项目池的子集。15.从另一示例来看,本技术提供了一种非暂态计算机可读介质,该非暂态计算机可读介质用于存储用于制造装置的计算机可读代码,该装置包括:16.接口电路,该接口电路用于接收请求;以及17.选择电路,该选择电路响应于接口电路接收到给定请求而从项目池中选择要与给定请求相关联的至少一个选定项目;18.其中选择电路包括多个节点,每个节点被配置为从提供给该节点的n个输入信号选择m个输出信号,其中n》m;19.其中多个节点以树结构进行布置,树结构包括多个层,多个层至少包括第一层节点和包括最终节点的最终层,第一层节点被配置为接收指示项目池中的项目的输入信号,并且最终节点被配置为输出指示至少一个选定项目的信号,来自除最终节点之外的给定节点层的输出信号被提供为后续层的输入信号;并且20.其中该装置包括控制电路,控制电路被配置为根据给定请求的类型输出抑制信号,并且树结构包括门极节点,门极节点被配置为响应于抑制信号具有第一值而抑制根据从树结构的给定部分接收的输入信号进行选择,以防止针对至少一种类型的请求选择项目池的子集。21.本技术的另外的方面、特征和优点将从结合附图阅读的示例的以下描述中显而易见。附图说明22.图1示意性地示出了包括接口电路和选择电路的数据处理系统的示例;23.图2a示意性地示出了在选择电路内提供的节点树中的节点的示例;24.图2b示意性地示出了门极节点的示例;25.图3a和图3b示意性地示出了包括门极节点的树结构的示例;26.图4a和图4b示意性地示出了树结构的另外的示例;27.图5示意性地示出了包括耦合到接口的多个代理的系统;28.图6示意性地示出了高速外围组件互连(pcie)网络的示例;29.图7a和图7b示出了针对给定请求可选择的不同硬件资源的示例;30.图8是示出了从项目池中选择要与请求相关联的项目的示例性方法的流程图;31.图9是示出了控制电路的操作的示例性方法的流程图;并且32.图10是示出了门极节点的操作的示例性方法的流程图。具体实施方式33.在参考附图讨论实施方案之前,提供了对示例性实施方案以及相关联优点的以下描述。34.根据一个示例性配置,提供了用于接收请求的接口电路以及选择电路,该选择电路响应于接口电路接收到给定请求而从项目池中选择要与给定请求相关联的至少一个选定项目。选择电路包括多个节点,每个节点被配置为接收n个输入信号并从该输入信号选择m个输出信号,其中n大于m。例如,给定节点可以是2:1节点(n=2并且m=1)、4:1节点(n=4并且m=1)或4:2节点(n=4并且m=2),或者可以具有m:n的任何其它比率,前提条件是n》m。此外,树结构中的所有节点可以具有相同的n值和m值,或者不同的节点可以具有不同的n值和m值(例如,一些节点具有n:m的第一比率,并且其它节点具有n:m的第二不同比率)。35.多个节点以树结构进行布置。具体地,树结构具有多个层,至少包括第一节点层(例如,顶层或输入层),该第一层接收指示项目池中的项目的输入信号。例如,由第一层节点中的节点接收的每个输入信号可以表示项目池中的不同项目,使得由第一层中的节点接收的输入信号的总数可以等于项目池中的项目的数目。树结构还包括最终层(例如,底层或输出层),该最终层包括最终节点,该最终节点被配置为输出指示至少一个选定项目的至少一个信号。根据特定实施方式,在第一层与最终层之间还可以存在一个或多个中间层。例如,树结构中的层数可以取决于因素,诸如项目池中的项目的数目以及针对每个节点的n值和m值。36.来自除最终节点之外的给定节点层的输出信号被提供为后续层的输入信号。例如,每个层可以包括比前一层更少的节点,使得节点树中的每个层滤除池中的项目的一部分,使得每个层的输入信号的数目小于前一层的输入信号的数目。37.以此方式提供树结构可以是从项目池中选择项目的特别有效的方式,特别是当项目池较大时,因为诸如此树结构的树结构可以容易地缩放。38.发明人认识到,接口电路的给定实例能够接受多种不同类型的请求可能是有利的,并且不同类型的请求可能对由选择电路选择的与请求相关联的项目有不同的要求。例如,给定类型的请求可能与项目池的子集不兼容。因此,当请求属于所述给定类型时,能够从所述子集之外选择项目将是有利的。39.这样做的一种方式可以是提供用于针对每一类型的请求选择项目的单独树结构,每个树结构从特定于对应类型的请求的不同(重叠或非重叠)项目池中进行选择。以此方式,通过使用对应的树结构,可以从更适合于特定类型的请求的项目池中选择选定项目。然而,此方法在电路面积方面引发显著成本,因为需要复制来自单个树结构的逻辑以允许从每个池中进行选择,即使在可用于特定类型的请求的项目池之间存在重叠时也是如此。40.本发明人认识到,需要显著较少电路面积的更有效的方法将是提供用于不同类型的请求的树结构的共享实例,并且提供控制电路以根据由接口电路接收的给定请求的类型而输出抑制信号。树结构包括门极节点,门极节点被配置为响应于抑制信号具有第一值而抑制根据从树结构的给定部分接收的输入信号进行选择,从而防止针对至少一种类型的请求选择项目池的子集。以此方式,对选择电路的简单修改(例如,添加控制电路并用门极节点替换树中的一个节点)允许针对由接口电路接收的特定类型的请求调制项目选择,而无需提供具有不同树结构的选择电路的第二实例。此允许装置支持多种不同类型的请求,而不会显著增加电路面积。41.对于能够与项目池中的任何项目相关联的一种或多种类型的请求(例如,并非与项目池的给定子集不兼容),通过当抑制信号不具有第一值时,允许门极节点从传入门极节点的任何输入信号中进行选择,本技术可以允许选定项目是项目池中的任何项目。这可能是有利的,因为它不会不必要地针对那些类型的请求限制项目池。然而,在一些示例中,门极节点用以响应于抑制信号具有第二值,相比根据指示项目池的子集之外的项目的输入信号进行选择,优先根据指示项目池的子集中的项目的输入信号进行选择。此优先级排序可以采取任何形式;例如,当抑制信号具有第二值时,可以应用简单的优先级排序策略,其中选定项目是从项目池的子集之外选择的,除非在子集之外不存在可用的项目。另选地,可以应用更巧妙的优先级排序策略,该策略可以例如与一些其它选择标准(诸如最近最少使用(lru)策略或附加的优先级策略)组合应用。42.无论应用何种形式的优先级排序,当抑制信号具有第二值时,这仍然允许门极节点从项目子集内选择项目,但子集之外的项目优先于子集内的项目。这可能是特别有利的,因为其增加了针对给定请求选择可用项目的可能性(通过增加从中进行选择的项目的数目),但也可以允许子集之外的更多项目对于需要选定项目来自子集之外的至少一种类型的那些请求保持可用。此外,通过提供在抑制具有第二值时优先选择子集中的项目的门极节点,可以通过对树结构进行相对较小的修改来实现这些优点(例如,修改门极节点可能足够,而不需要改变树结构的其它节点),并且因此易于实施并且不会显著增加选择电路的电路面积。43.在一些示例中,为了防止针对至少一种类型的请求选择项目池的子集,树结构的给定部分包括其输出信号取决于指示项目池的子集中的项目的输入信号的节点。44.树中的门极节点的位置可以取决于数个因素中的任一者,包括例如针对每个节点的n值和m值、整个项目池中的项目的数目以及项目池的子集中的项目的数目。45.在一些示例中,当树结构中的每个节点具有相同的n值和m值,且m=1,其中项目池包括p个项目,并且项目池的子集包括s个项目时,则门极节点可以定位在给定层中,该给定层在最终层之前y个层,其中当y=0时,给定层是最终层本身,并且当y》0时,给定层是比最终层更早的层。门极节点可以响应于抑制信号具有第一值而防止其输入信号中的x个输入信号被选择,其中x《n。在此类示例中,因此可以通过以下等式在数学上定义门极节点的位置:[0046][0047]在一些示例中,最终节点包括门极节点。例如,以上等式可以通过y=0的值(表示最终节点)来满足(例如,当m=1并且x/n=s/p时)。[0048]然而,在其它示例中,门极节点位于除最终层之外的层中。通过允许门极节点定位在树结构的任何层中(例如,通过允许任何节点为门极节点),可以在各种不同情况下,在s(子集中的项目的数目):p(项目池中的项目的数目)的任何比例的情况下,应用本技术。因此,可以选择树中的门极节点的位置以确保可以针对至少一种类型的请求并不选择总项目池中的期望部分。[0049]如上所述,为了支持多种不同类型的请求,每个类型的请求关于要与每个请求相关联的项目具有不同要求,技术人员可以考虑提供两个单独的树结构以从相应的项目池中进行选择(例如,针对每种类型的请求提供一种树结构)。这可以允许从池中选择最适合于请求的类型的项目。然而,发明人认识到,可以替代地在不提供两个单独的树结构的情况下支持不同类型的请求。相反,在本技术的示例中,选择电路被配置为针对至少一种类型的请求和至少一种其它类型的请求使用相同树结构。因此,从项目池的项目选择可以使用上述控制电路和门极节点针对给定请求的类型加以调制,而不会引发复制提供每个树结构所需的电路的附加成本(例如,在电路面积方面)。[0050]在一些示例中,每个节点被配置为根据与n个输入信号中的每个输入信号相关联的可用性信号来选择m个输出信号,每个可用性信号指示项目池中的相关联项目是否可用于选择。例如,每个节点可以被配置为使得其选择对应的可用性信号指示相关联项目可用的输入信号作为m个输出信号,并且防止选择对应的可用性信号指示相关联项目可用的输入信号。这可以独立于所应用的任何其它选择标准,例如,每个节点可以被配置为使得用于选择输出信号的任何选择标准应用于在表示可用项目的输入信号中进行选择。[0051]在一些示例中,门极节点包括用于接收与提供给门极节点的n个输入信号中的一个输入信号相关联的可用性信号的与门,并且与门被配置为将可用性信号与抑制信号组合以生成选择信号,以控制n个输入信号中的所述一个输入信号是否可供门极节点选择。例如,与门可以包括布尔逻辑门,该布尔逻辑门接收两个输入信号(例如,可用性信号和抑制信号)并且输出具有1或0的值的信号(选择信号);例如,当两个输入信号的值均为1时,输出信号的值可能为1,而在任何其它情况下,输出信号的值可能为0。接着,门极节点可以被配置为根据选择信号选择m个输出信号。[0052]以此方式,可以通过对树结构进行相对较小的更改来实施本技术(例如,将单个与门添加到门极节点)。因此,这可以是实施本技术的特别有效的方式,其不需要显著增加由树结构占据的电路面积。[0053]在一些示例中,每个节点被配置为根据最近最少使用(lru)策略和优先级策略中的至少一者选择m个输出信号,在lru策略中针对每个节点的m个输出信号是根据由n个输入信号表示的项目中的哪一个项目最近最少分配给请求而进行选择,在优先级策略中针对每个节点的m个输出信号是根据与n个输入信号中的至少一个输入信号相关联的优先级而进行选择。[0054]这些策略中的每一者都可以是有利的;例如,与其它策略相比,在给定时间段内,lru策略可能允许使用项目池中更多数目的项目,这可能有助于降低在短时间空间内针对多个请求选择给定项目的可能性,该给定项目选择可能会导致错误。另一方面,优先级策略可以是允许更频繁地选择某些优选的选项的简单方式。应理解,除了可由门极节点应用的任何优先级排序之外,还可以应用任何选择标准,包括优先级策略。例如,当抑制信号具有第二值时,如果门极节点被配置为优先选择来自子集内的项目,则可以应用诸如lru或优先级策略的另外选择标准以从子集内的那些项目中选择项目。类似地,当抑制信号具有第一值并且门极节点被配置为抑制从项目池的子集进行选择时,可以应用诸如lru或优先级策略的另外选择标准以从子集之外进行选择。此外,应理解,这些仅仅是可以应用的选择标准的两个示例。可以应用其它选择标准来代替(或补充)这些策略。例如,可以应用最近最多使用(mru)策略,其中针对每个节点的m个输出信号是根据由n个输入信号表示的项目中的哪一个项目最近最多分配给请求而进行选择。[0055]由项目池表示的项目可以取决于本技术的特定实施方式和特定系统的要求。然而,在一些示例中,项目池中的每个项目包括标识符,并且选定项目包括要与给定请求相关联的选定标识符。例如,在仅允许不同类型的请求与标识符的某些值相关联的情况下,本技术可为特别有益的。[0056]在一些示例中,接口被配置为接收来自至少一个代理的请求,并且响应于请求而向至少一个代理发射响应。在此类示例中,接口响应于接收到给定请求而将传出请求和选定标识符发送到耦合到互连器的完成器代理,并且从完成器代理接收给定响应和选定标识符。因此,标识符可以识别由互连器接收的哪些响应与哪些请求相关联。[0057]在一些示例中,项目池的子集包括值大于或等于可针对所述至少一种类型的请求指定的阈值标识符值的标识符。例如,一些类型的请求可能会在与其相关联的标识符的大小方面受到限制。例如,请求本身可以具有有限的大小,这可能仅允许某个数目的位用于标识符。另一方面,其它类型的请求可能够支持更大的标识符,并且因此可以指定大于阈值标识符值的标识符值。通过针对特定类型的请求调制标识符选择,本技术可以允许支持两种类型的请求。[0058]在一些示例中,接口被配置为根据传出请求协议发送输出请求,其中传出请求协议是根据给定请求是属于第一类型还是第二类型而进行选择,并且至少一种类型的请求包括第一类型。例如,针对传出请求选择的传出请求协议可以指示诸如传出响应的大小或预期的响应类型的因素,并且选定传出请求协议可以具有关于与请求相关联的标识符的某些要求。因此,本技术可在此类系统中特别有利。[0059]传出请求协议可以数种不同方式取决于给定请求的类型。在一些示例中,当给定交易属于第一类型时,传出请求协议包括第一请求协议,并且当给定交易属于第二类型时,传出请求协议包括与第一请求协议不同的第二请求协议。然而,在其它示例中,接口被配置为当给定交易属于第一类型时,根据传出请求协议的第一配置发送传出请求,并且当交易属于第二类型时,根据传出请求协议的第二配置发送传出请求。[0060]取决于具体实施方式,请求可为任何类型。然而,在一些示例中,不同类型的请求旨在用于不同的完成器代理。例如,第一类型的请求可以包括指定第一完成器代理的请求,并且第二类型的请求可以包括指定与第一完成器代理不同的第二完成器代理的请求。另外,在一些示例中,接口被配置为接收地址转换请求和访问请求,以访问存储在耦合到接口的存储设备中的数据,并且第一类型的请求(例如,其中根据第一请求协议发送传出请求,并且抑制从项目池的子集进行选择)包括地址转换请求,并且第二类型的请求(例如,其中根据第二请求协议发送传出请求)包括访问请求。[0061]应理解,标识符仅仅是可以根据本技术选择的项目的一个示例。另选地,在一些示例中,项目池中的每个项目可以包括能够选择用于分配给请求的硬件资源。在此类示例中,对于至少一种类型的请求,选择电路被限制为选择项目池的所述子集之外的硬件资源,并且对于另一类型的请求,选择电路能够选择项目池中的任何硬件资源。[0062]本文所描述的概念可体现于用于制造体现所描述概念的装置的计算机可读代码中。例如,计算机可读代码可在半导体设计和制造过程的一个或多个阶段(包括电子设计自动化(eda)阶段)使用,以制造包括体现这些概念的装置的集成电路。以上计算机可读代码可另外地或另选地使得能够对体现本文所描述概念的装置进行定义、建模、模拟、验证和/或测试。[0063]例如,用于制造体现本文所描述概念的装置的计算机可读代码可体现在定义这些概念的硬件描述语言(hdl)表示的代码中。例如,代码可定义用于定义体现这些概念的装置的一个或多个逻辑电路的寄存器传送级(rtl)抽象。代码可用verilog、systemverilog、chisel或vhdl(超高速集成电路硬件描述语言)以及诸如firrtl的中间表示来定义体现装置的一个或多个逻辑电路的hdl表示。计算机可读代码可提供使用系统级建模语言诸如systemc和systemverilog体现概念的定义或概念的其他行为表示,这些行为表示可由计算机解译以使得能够对概念进行模拟、功能和/或形式验证和测试。[0064]附加地或另选地,计算机可读代码可以体现一个或多个网络列表的计算机可读表示。可以通过向rtl表示应用一个或多个逻辑合成过程来生成一个或多个网络列表。另选地或另外地,一个或多个逻辑合成过程可从计算机可读代码生成待加载到现场可编程门阵列(fpga)中以将fpga配置为体现所描述概念的位流。fpga可出于在制造集成电路之前验证和测试概念的目的被部署,或者fpga可直接部署在产品中。[0065]计算机可读代码可包括用于制造装置的代码表示的混合,例如包括rtl表示、网表表示或在半导体设计和制造过程中用于制造体现本发明的装置的另一计算机可读定义中的一者或多者的混合。另选地或另外地,概念可在半导体设计和制造过程中用于制造装置的计算机可读定义和定义一旦制造就将由所定义装置执行的指令的计算机可读代码的组合中定义。[0066]此类计算机可读代码可设置在任何已知的暂态计算机可读介质(诸如通过网络进行的有线或无线代码传输)或非暂态计算机可读介质诸如半导体、磁盘或光盘中。使用计算机可读代码制造的集成电路可包括诸如以下中的一者或多者的部件:中央处理单元、图形处理单元、神经处理单元、数字信号处理器或单独或共同体现概念的其他部件。[0067]现在将参考附图描述具体实施方案。[0068]图1示出了包括接口(接口电路)104和选择电路106的系统102。接口104被配置为接收请求,并且选择电路106被配置为从项目池选择要与由接口104接收的给定请求相关联的选定项目。[0069]如图1所示,选择电路106可以包括以树结构进行布置的多个节点108、110。具体地,树包括多个节点层,每个层包括比前一层更少的节点。在此情况下,树包括三层节点:第一层包括四个节点108a、108b、108c、108d,第二层包括两个节点108e、108f,并且最终层包括单个节点110,也称为最终节点。[0070]每个节点接收数个输入信号,在此情况下为2个;并且输出选自输入信号的数个输出信号,在此情况下为1个。每个输入信号表示项目池中的一个项目。在此特定示例中,项目池中存在8个项目,并且每个项目由传入第一节点层108a、108b、108c、108d的输入信号中的一个输入信号表示。除第一层之外的每个节点层的输入信号是由来自前一节点层的输出信号提供。例如,到第二层中的节点108e、108f的输入信号是来自第一层中的节点108a、108b、108c、108d的输出信号—具体地,针对节点108e的输入信号是来自节点108a和108b的输出信号,并且针对节点108f的输入信号是来自节点108c和108d的输出信号。类似地,针对最终节点110的输入信号是来自第二层中的节点108e、108f的输出信号。以此方式,在每个级别滤出输入信号的一半,使得最终节点110输出指示选定项目的单个输出信号。[0071]应理解,图1所示的布置仅仅是一个示例,且实际上项目池中可能存在任何数目的项目,并且树中节点的数目和布置可以相应地进行调整。此外,如下文将更详细地论述,节点不必为2:1节点(例如,每个节点接收两个输入信号并输出单个输出信号)。[0072]接口104能够接收多个(例如,至少两个)不同类型的请求,并且每个类型的请求可以对选定项目具有不同的要求。具体地,至少一种类型的请求可以仅与项目池的子集兼容。因此,考虑请求的类型对于选择电路106执行的选择来说可能是有益的。[0073]为了解决这个问题,选择电路106还包括控制电路112,当接口104接收到该至少一种类型的请求时,该控制电路输出具有第一值的抑制信号。另外,树中的节点中的一个节点(在此情况下为最终节点)是门极节点110(用字母“g”指示),其响应于抑制信号具有第一值而抑制从树的一侧选择选定项目,从而防止从树的给定子集(在此情况下为一半)选择选定项目。[0074]图2a和图2b示出了树结构中的节点108、110的示例。具体地,图2a示出了普通节点108(例如,不是门极节点)的示例,并且图2b示出了门极节点110的示例。[0075]图2a的节点108(也可称为仲裁器)是2:1节点的示例,这意味着它在端口a和端口b处接收两个输入信号并输出单个输出信号。对于输入信号中的每个输入信号,节点108还接收有效信号。对应于每个输入信号的有效信号(也称为可用性信号)指示由该输入信号表示的项目是否可用。例如,当先前已经与仍然待决的另一请求相关联时,项目可以被认为是不可用的。在此示例中,当对应项目可用时,有效信号等于1,并且当对应项目不可用时,有效信号等于0。[0076]输入信号中的每个输入信号被馈送到多路复用器202中,该多路复用器在由选择控制电路204输出的选择信号的控制下选择输入信号中的一个输入信号。选择控制电路204接收两个有效信号作为输入,并且根据有效信号和由节点108应用的选择标准输出选择信号。例如,如果有效信号指示由输入信号表示的项目中的一个项目可用但另一项目不可用,则选择控制电路204可以输出控制多路复用器202以选择表示可用项目的输入信号的选择信号。另一方面,如果有效信号指示两个项目均可用,则选择控制电路204可以应用如下选择标准:诸如lru策略(其中选择表示最近最少分配给请求的项目的输入信号)、优先级策略(其中基于一些预定优先级顺序选择输出信号;例如,优先级策略可以指示,如果在端口a和端口b中的给定端口处接收到的信号被指示为可用,则应始终选择该信号)、mru策略(其中选择表示最近最多分配给请求的项目的信号)或随机策略(其中随机选择输出信号)。[0077]节点108还包括或门206。或门是布尔逻辑门,其接收两个信号,并且当两个接收信号中的至少一者的值也为1时,输出值为1的一个信号。在此特定示例中,或门206接收两个有效信号,并且输出变成由节点108输出的输出信号的有效信号的信号。具体地,当有效信号中的任一者或两者被断言(例如,值为1,这指示由对应的输入信号表示的项目可用)时,或门输出值为1的信号,这指示由节点108选择的输出信号与项目池中的可用项目相关联。如果节点108处于树结构中除最终层之外的层中,则由或门206生成的有效信号和由多路复用器202选择的输出信号两者被提供为到树的下一层中的节点108、110的输入。[0078]类似于图2a中所示的普通节点108,图2b中所示的门极节点110在端口a和端口b处接收输入信号。然而,对于门极节点110,在端口a处接收的输入信号表示来自项目池的子集之外的项目(例如,可以针对至少一种类型的请求选择的项目),并且在端口b处接收的输入信号表示子集中的项目(例如,无法针对至少一种类型的请求选择的项目)。[0079]门极节点110具有与图2a中所示的节点108类似的布置,并且包括多路复用器202,该多路复用器用于从端口a和端口b这两个端口处接收的输入信号中选择输出信号。门极节点110还包括或门206以生成要由门极节点110输出的有效信号。然而,门极节点110的布置与普通节点108的布置的不同之处在于选择控制电路204被优先级控制电路208替换,并且另外提供了与门210。另外,代替对应于在端口b处接收的输入信号的有效信号,由与门210输出的信号被提供给优先级控制电路208和或门206两者。[0080]与门是布尔逻辑门,其接收两个输入信号,每个输入信号等于1或零,并且仅当输入信号两者的值均为1时输出值为1的信号。具体地,门极节点110的与门210接收与在端口b处接收的输入信号相关联的有效信号,以及由控制电路112(未示出)生成的抑制信号。在此特定示例中,当由接口接收的给定请求不属于该至少一种类型(例如,可以针对该请求选择项目池中的任一项目)时,抑制信号被断言(例如,值为1),并且当给定请求属于该至少一种类型(例如,仅项目池的子集之外的项目可以被选择)时,抑制信号被取消断言(例如,值为0)。因此,在此特定示例中,仅当在端口b处接收到的信号所表示的条目可用且给定请求不属于至少一种类型时(例如,当在与门210处接收到的有效信号和抑制信号两者均被断言,且值为1时),与门210才断言信号(例如,输出值等于1的信号)。[0081]优先级控制电路208接收与端口a处的输入相关联的有效信号和由与门210输出的信号,并且生成控制多路复用器对输出信号的选择的选择信号。具体地,除非接口接收到的给定请求属于至少一种类型,否则优先级电路208控制多路复用器202以优先选择在端口b处接收的输入信号。具体地,优先级控制电路208控制多路复用器202以根据下表1进行选择。[0082]表1-门极节点处的输出信号选择[0083][0084]通过优先选择在端口b处接收的输入信号,以用于除至少一种类型之外的类型的请求(当抑制信号指示允许任何项目时),如果可能的话,项目池的子集中的项目将被保留以供仅允许使用来自子集的项目的那些请求使用。这可以是特别有利的方法,因为其增加了可以针对给定请求选择可用项目的可能性,而不管给定请求的类型如何。[0085]然而,应理解,门极节点208不必包括优先级控制电路208,并且相反,优先级控制电路208可以由任何形式的选择控制电路204替换,如图2a所示。此外,应理解,图2a中所示的选择控制电路204也可能应用与图2b中所示的优先级控制电路208相同的优先级排序策略(例如,使端口b优先排序)。[0086]此外,由门极节点110应用的优先级排序可以采用与上述示例不同的形式。例如,门极节点110可以应用(例如)优先级或lru方案,并且端口b先于端口a的优先级排序可以更巧妙,使得在端口a和b两者均有效并且抑制信号指示允许任何项目的情况下,门极节点110仍然可以被允许选择端口a而不是端口b。例如,在优先级/lru方案指示端口a处的输入信号比端口b处的输入信号更有利时,即使端口b处的信号可用,门极节点110仍可以被允许选择端口a处的信号。端口b先于端口a的优先级排序可能仅是多因素问题中的一个因素。例如,仅在端口b与端口a之间的排序差异较小的情形下,端口b先于端口a的优先级排序才可能生效,如果在lru/优先级策略方面,端口a的排名远高于端口b,则相较于端口b仍可优先选择端口a。[0087]门极节点110可以定位在树结构的任何层中,这取决于包括以下的因素:由节点108、110中的每一者接收的输入信号的数目n、由每个节点108、110输出的输出信号的数目m、由门极节点110响应于抑制信号具有第一值而抑制选择的输入信号的数目,以及项目池中的项目的数目,和项目池的子集中的项目的数目。图3a和图3b示出了如下两个示例,其中门极节点110可以定位在包括三层2:1(例如,n=2并且m=1)节点108、110的树内。[0088]在图3a和图3b中,树的各层用y值标记,使得最终层标记为y=0,上一层(第二层/中间层)标记为y=1,并且第一层(输入层)标记为y=2。在图3a中,门极节点110位于树的最终层(y=0)中(例如,门极节点110是最终节点),当抑制信号具有第一值时,这允许其防止从项目池的项目中的一半(8个项目中的4个项目)中进行选择(例如,图3a中的子集包括项目池的一半)。换句话说,当抑制信号具有第一值时,图3a中的门极节点110关闭(防止从其选择)树中接收指示项目池的子集中的项目的输入信号的部分—具体地,门极节点关闭树中包括节点108c、108d和108f的部分。[0089]图3b示出了节点树的另一示例。图3b中的树具有与图3a中的树相同的布置—每个节点是2:1节点,并且树包括以三层布置的7个节点—除了门极节点110定位在中间层(y=1)之外。在此示例中,最终节点108g因此不是门极节点110。因此,项目池的子集包括项目池的四分之一(8个项目中的2个项目),并且树中响应于抑制信号具有第一值而被门极节点110关闭的部分仅包括节点108d。[0090]如图3a和图3b所示,在包括2:1节点的树中,其中门极节点110被配置为当抑制信号具有第一值时防止选择其两个输入信号中的一个输入信号,门极节点110的位置是根据项目池中的项目的数目(p)和项目池的子集中的项目的数目(s)进行选择。具体地,门极节点110在此类树中的位置由以下等式定义,其中门极节点110定位在层y中,如上所述:[0091][0092]例如,对于图3a中所示的树,s=4,p=8并且y=0。[0093]此外,等式2可以一般化为由n:m节点组成的任何树,前提条件是n》m,并且对于树中的每个节点,n值和m值是相同的。例如,如果门极节点110被配置为抑制从n个输入信号中选择x个输入信号(其中x《n),则门极节点的位置可以由以下定义:[0094][0095]如上所述,树结构中的节点可以采用任何形式,并且不必为如图1到图3中所示出的2:1节点。例如,图4a和图4b示出了节点树的两个另外的示例性布置。[0096]在图4a中,每个节点408是4:1节点—例如,针对每个节点的输入信号的数目(n)为4,并且针对每个节点的输出信号的数目(m)为1。在图4b中,每个节点410是4:2节点—例如,n=4并且m=2。应理解,在图4a和图4b的示例中的每一者中,节点408、410中的一者是门极节点。此外,特别地考虑图4b,应注意,如果需要仅选择一个项目(例如,并非选择两个项目),则可以在节点410g之后包括另外的2:1节点,以在来自此节点的两个输出信号之间进行选择;另选地,节点410g可以替换为4:1节点。[0097]虽然附图示出仅包括单个门极节点的示例,但是还可以包括多于一个门极节点以防止项目池的多个子集被选择。例如,在图3b所示的2:1节点的树中,在108e处分配附加的门极节点以关闭端口b(对应于其输入信号被提供给第一层中的节点108b的项目)。如果存在可能需要从不同的部分重叠的项目池中进行选择的三种或更多种类型的请求,则这可能很有用。[0098]图5示出了其中可实施本技术的系统的示例。在图5中,接口(接口电路)104耦合到四个代理,包括两个请求代理502和两个完成器代理504,接口104根据下游请求协议向其发送传出请求。请求代理502根据上游请求协议向接口发送请求。根据其发送给定请求的请求协议可以定义诸如请求的格式(例如,请求的大小,以及请求中的每个位预期表示的内容)和请求的目的地等特征。[0099]接口104还可访问选择电路106,该选择电路响应于接口104从请求代理502中的一个请求代理接收到给定请求而从可用标识符的池中选择要与给定请求相关联的选定标识符。接着,接口104根据可能不同于上游请求协议的下游请求协议,将对应于给定请求的传出请求发送到完成器代理504中的一个完成器代理。[0100]接口104将传出请求与选定标识符一起发送,并且完成器代理504在使用选定标识符向接口104发送下游响应之前对请求进行操作。因此,选定标识符允许接口将从完成器代理504中的一个完成器代理接收的下游响应与由接口104发送的传出请求相关联。例如,这可以允许接口104识别哪个请求代理502发送了与下游响应相对应的初始请求。[0101]一旦从完成器代理504接收到下游响应和选定标识符,接口104就向发送初始请求的请求代理504发送上游响应。[0102]接口104被配置为从请求代理504接收至少两种不同类型的请求。例如,这些请求可以是地址转换请求和访问请求,但这些仅仅是两个示例,并且接口104也可以接收其他类型的请求。对于接口104接收到的每种类型的请求,用于将传出请求发送到完成器代理504中的一个完成器代理的下游请求协议可以不同。例如,接口104可以响应于接收到第一类型的给定请求而根据第一下游请求协议发送传出请求,并且响应于接收到第二类型的给定请求而根据第二下游请求协议(其与第一下游请求协议不同)发送传出请求。[0103]不同的下游请求协议可能对与传出请求相关联的任何标识符有不同的要求。例如,第一下游请求协议可以限制传出请求的大小,使得仅有限数目的位可用作标识符,而第二下游请求协议可以具有更大的限制,从而允许包括更多数目的位的标识符。为了适应这一点,选择电路106以与图1所示的选择电路106类似的方式布置,其中项目池是可供选择电路106选择的标识符池,并且项目池的子集是低于某一值的所有标识符(例如,少于给定数目的位的所有标识符)。这允许选择电路106根据请求的类型针对接口104接收到的给定请求而选择标识符。[0104]图6示出了可应用本技术的系统的特定示例。具体地,图6示出了高速外围组件互连(pcie)网络602。pcie是用于硬件接口的通信标准,并且描述了要应用于在接口与耦合到接口的一个或多个上游元件之间发送的请求和响应的上游请求协议。例如,片上系统(soc)与各种外部/外围设备之间的接口可以符合pcie协议。[0105]在图6的示例中,接口包括pcie根端口606,并且上游代理包括pcie代理604。pcie代理604是图5中所示的请求代理502的示例,并且被配置为根据pcie请求协议将pcie请求发送到pcie根端口606。pcie代理604可以包括硬件加速器和用于在数据处理系统与外部世界之间进行通信的输入/输出(i/o)设备,每个i/o设备可以与用户输入设备、网络控制器、usb接口等通信。pcie根端口606是图1和图5中所示的接口104的示例,并且被配置为根据对应的pcie响应协议向pcie代理604发送响应。pcie代理604发射的pcie请求可以是数种不同类型的请求中的任一种,但两个特定示例是地址转换请求(例如,指定要转换为对应的中间物理或物理地址的给定虚拟或中间物理地址的请求)和访问请求(例如,向存储器610或另一存储元件612中的目标位置读取或写入数据的请求)。[0106]在pcie根端口606的下游,提供了数个下游代理。例如,可以负责处理由pcie代理604发出的地址转换请求的输入/输出存储器管理单元(iommu)608耦合到pcie根端口606。pcie根端口606可响应于接收到给定转换请求而将传出请求连同标识符一起发射到iommu 608,从而iommu请求iommu 608向pcie根端口606提供与传出请求中指定的虚拟地址(或在一些示例中为中间物理地址)相对应的物理地址(或在一些示例中为中间物理地址)。接着,pcie根端口606向请求代理提供转换地址。[0107]可以耦合到pcie根端口606的其它下游元件包括存储器610和一个或多个另外的存储元件612。存储器610和其它存储元件612可以经由系统互连器614耦合到pcie根端口606,处理器核心616也可以耦合到该系统互连器,并且,在一些示例中,系统互连器614、处理器核心616、存储器610和其它存储元件612都可以提供为soc(其还可以包括pcie根端口606、选择电路106和iommu 608)的一部分。pcie根端口606可将任何访问请求(例如,读取存储器610或另一存储元件612中的目标位置处的数据的读取请求,或将数据存储到目标位置的写入请求)传递到存储器610或其它存储元件612。具体地,pcie根端口606可响应于接收到访问请求而经由系统互连器614将传出请求连同标识符一起发射到存储器610或其它存储元件612。[0108]pcie根端口606发送带有标识符的每个传出请求,从而允许从下游组件接收的任何响应与其对应的请求相关联。[0109]在pcie网络中,可以根据不同的请求协议(也称为下游请求协议)发射不同的传出请求(例如,从pcie根端口606发送到下游组件的请求)。例如,pcie根端口606可以将传入地址转换请求映射到具有由分布式转换接口(dti)协议定义的格式的传出请求,并且可以将传入访问请求映射到高级可扩展接口(axi)协议。axi和dti是由英国剑桥的有限公司提供的协议,但应理解,其它示例可能会使用不同的协议。[0110]在dti协议中,请求和响应可能限于某个最大宽度(例如,每个请求/响应中的位的最大数目),这可意味着在针对标识符的每个请求/响应中仅有限数目的位可用。这又可意味着与dti请求/响应相关联的标识符存在最大可能值。另一方面,根据axi协议发送的请求和响应可能不以相同的方式受到限制,并且因此与axi请求/响应相关联的标识符可能不存在架构上定义的最大大小(或最大大小可能大于与dti请求/响应相关联的标识符的最大可能大小)。因此,根据本技术,提供选择电路106,其根据请求的类型选择要与给定请求相关联的标识符。具体地,选择电路106可以具有与图1中所示的选择电路类似的布置,并且因此可以允许针对请求的类型对选定标识符加以调制,而不会显著增加选择电路106占据的电路面积。[0111]应理解,上文提到的pcie网络和特定协议(pcie、dti和axi协议)仅仅是说明性的。本技术可应用于任何数目的系统:例如,本发明可在任何系统中实施,该系统包括接收至少两种不同类型的请求的接口,并且该接口被配置为将选定项目与每个请求相关联。此外,即使在如图6所示的pcie网络内,也可以使用任何数目的不同下游请求协议来代替(或补充)所描述的dti和axi请求协议。[0112]虽然图6示出了其中项目池包括标识符池的示例,但是这仅仅是本技术的一个示例性实施方式。图7a和图7b示出了其中可以针对不同种类的请求可选择的不同硬件资源的系统的另外的示例。[0113]具体地,图7a示出了一种系统,其中请求是指令并且接口104向其发送传出请求的下游完成器元件包括执行单元。具体地,示出了四个执行单元:两个执行单元618a、618b支持执行两种不同类型的指令(a和b),而其它两个执行单元620a、620b支持指令类型a,但不支持指令类型b。例如,前两个执行单元618a、618b可以包括其它两个执行单元620a、620b中不包括的附加硬件元件。应理解,虽然图7a中示出了四个执行单元,但实际上可以存在任何数目的执行单元。此外,系统中可能存在由执行单元支持的多于两个指令类型。[0114]如图7a所示,接口104接收到的传入请求可以请求执行给定类型(类型x)的指令,其中类型x是类型a和类型b中的一种类型。响应于接口104接收到请求,选择电路106被配置为选择执行单元618、620中的一个执行单元作为请求的目的地(完成器代理)。接口104接着向选定执行单元发送传出请求。因此,执行单元是针对给定请求可选择的硬件资源的示例;在图7a的系统中,项目池因此包括执行单元池,并且用于给定请求的选定项目包括选择为给定请求的完成器代理的执行单元。[0115]在图7a的示例中,由于执行单元2和3 620不支持指令类型b的执行,因此选择电路106可以被布置成在传入请求用于执行类型b的指令时抑制这些选择单元的选择。例如,项目池的子集可以对应于执行单元2和3。[0116]同时,图7b示出了如下示例,其中选择电路106被配置为针对给定输入请求选择高速缓存或缓冲器622中的条目(该条目是可针对请求选择的硬件资源的示例)。图7b中所示的高速缓存或缓冲器622包括8个条目,每个条目包括地址字段和至少两个另外的字段。此外,高速缓存条目0、1、2和3还包括在条目4、5、6和7中不可用的两个附加字段。因此,虽然前四个条目可能够支持任何类型的请求,但后四个条目可能仅能够支持一些类型的请求;例如,至少一种类型的请求可能与要存储在针对前四个条目提供的两个附加字段中的一者或两者中的附加数据相关联,或者可能需要由附加字段表示的功能性。因此,由于最终四个条目不包括这些字段,因此选择电路106可以被配置为在给定请求属于该至少一种类型时抑制对最终四个条目中的一个条目的选择。因此,在图7b的示例中,项目池包括高速缓存或缓冲器622中的条目,并且项目池的子集包括高速缓存或缓冲器622的条目4、5、6和7。[0117]图8是示出根据本技术进行的方法的示例的流程图。具体地,该方法包括确定在接口处是否接收到请求的步骤s702。接着,一旦接收到请求,则确定请求是否属于给定的至少一种类型s704。如果请求属于至少一种类型,则控制电路输出具有第一值的抑制信号s706,并且选择电路响应于抑制信号具有第一值而抑制从项目池的给定子集中选择项目s708。因此,选择电路从不在给定子集内的可用项目池中选择项目s710,并输出指示选定项目的信号s712。[0118]另一方面,如果在步骤s704处确定请求不属于给定类型,则控制电路输出具有第二值的抑制信号s714。当抑制信号具有第二值时,选择电路并不抑制从给定子集选择项目,而是可以从项目池中选择任何项目,但是可以优先选择子集内的项目s716。[0119]图9是示出本技术的控制电路的操作的示例的流程图。如图8所示,图8的方法包括步骤s702、s704和s706。步骤s706a和s714a是步骤s706和s714的具体示例,其中抑制信号的第一值和第二值分别被指定为0和1,并且其中指定抑制信号被输出到与门。因此,图8中所示的方法可以与例如图2b所示的门极节点一起使用。[0120]图9的方法还包括步骤s802和s804,即确定是否已在接口处接收到新请求。如果已接收到新请求,则该方法返回到步骤s704;如果尚未接收到新请求,则控制电路继续输出具有相同值的抑制信号(例如,如果步骤s802的结果为否,则值为0,并且如果步骤s804的结果为否,则值为1)。[0121]图10是示出了2:1(例如n=2,m=1)门极节点(例如,图2b所示的门极节点110)的操作的示例的流程图。该方法包括步骤s902,即确定在门极节点(例如,在门极节点的端口a和端口b)处是否已接收到输入信号。当已接收到输入信号时,确定端口a处的信号(指示项目池的子集之外的项目)是否有效s904。如果端口a处的信号有效,则确定端口b处的信号(指示子集中的项目)是否有效s906。如果确定端口a处的信号有效但端口b处的信号无效,则门极节点输出指示端口a处的输入信号的信号s908。例如,端口b处接收的输入信号可能被指示为无效,因为项目池中的相关联项目不可用(例如,其已被分配给仍待决的另一请求)。另选地,即使对应项目可用,端口b处的输入信号也可以被指示为无效,例如在抑制信号被设置为指示应排除项目池的子集的情形下。另一方面,如果确定端口a处的信号和端口b处的信号两者均有效,则门极节点输出指示端口a处的输入信号的信号。[0122]返回到步骤s904,如果确定端口a处的信号无效,则仍然确定在端口b处接收的信号是否有效s914。如果端口a处的信号无效且端口b处的信号有效,则门极节点输出指示端口b处的信号的信号s912。如果在门极节点处接收的信号中无一者有效,则门极节点输出值为0的有效信号(指示门极节点的输出不对应于可用项目)和/或不输出任何信号(除值为0的有效信号之外)s916。[0123]如上文详细讨论的,只要端口b处的信号指示为有效(例如,当对应项目可用并且抑制信号的值为1时)就选择端口b处的信号仅仅是如何在门极节点处优先选择端口b的一个示例。可以替代地使用可层叠在其它选择标准的顶部上的使端口b优先排序的其它方法。此外,应理解,门极节点不必优先选择端口b;可以替代地应用任何其它选择标准,前提条件是当抑制信号指示应从选择中排除项目的子集时,抑制对端口b的选择。[0124]在本技术中,字词“被配置为...”用于意指装置的元件具有能够执行所限定的操作的配置。在该上下文中,“配置”意指硬件或软件的互连的布置或方式。例如,该装置可具有提供所限定的操作的专用硬件,或者可对处理器或其他处理设备进行编程以执行该功能。“被配置为”并不意味着装置元件需要以任何方式改变以便提供所限定的操作。[0125]虽然本文已结合附图详细描述了本发明的示例性实施方案,但应当理解,本发明并不限于那些精确的实施方案,并且在不脱离所附权利要求书所限定的本发明的范围的前提下,本领域的技术人员可在其中实现各种变化和修改。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部