用于利用自适应路由来控制资源利用的机制的制作方法

文档序号:9493964阅读:292来源:国知局
用于利用自适应路由来控制资源利用的机制的制作方法
【专利说明】用于利用自适应路由来控制资源利用的机制
[0001]领域
[0002]本发明一般涉及电子器件领域。更具体而言,本发明的实施例涉及用于利用自适应路由来控制资源利用的技术。
[0003]附图简述
[0004]参考附图提供了下列详细描述在附图中,附图标记中最左边的数字标识该附图标记首次出现的附图。在不同附图中使用相同的附图标记指示相似或相同的项。
[0005]图1示出了可以用来实现此处所讨论的各实施例的计算系统的实施例的框图。
[0006]图2示出了可以用来实现此处所讨论的一个或多个实施例的计算系统的实施例的框图。
[0007]图3示出了可以用于此处所讨论的一个或多个实施例中的路由逻辑的框图。
[0008]图4示出了根据一实施例的路由功能的框图。
[0009]图5示出了根据一实施例的路由逻辑的输入端口的虚拟信道中的逻辑划分。
[0010]图6示出了根据一实施例的对头部flits执行的方法的流程图。
[0011]图7示出了根据一实施例的用于检查拥塞的方法的流程图。
[0012]图8示出了根据一实施例的用于选择输出端口的方法的流程图。
[0013]图9示出了可以用来实现此处所讨论的一个或多个实施例的计算系统的实施例的框图。
[0014]图10示出了可以用来实现此处所讨论的一个或多个实施例的计算系统的实施例的框图。
[0015]详细描述
[0016]在下面的描述中,阐述了很多具体细节,以便全面地理解各实施例。然而,在没有这些具体细节的情况下,也可实践一些实施例。在其他情况下,没有详细描述已知的方法、过程、组件、和电路以便不至于不必要地使特定实施例变得模糊。本发明的各实施例的各方面可以使用各种装置,诸如半导体集成电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”),硬件和软件的某种组合,来执行。为本发明,对“逻辑”的引用应该是指硬件、软件,或者其某种组合。
[0017]当设计网络系统时,一些主要考虑是最小化面积和功率耗散。这样的局限性强制了对拓扑、切换策略、路由功能和架构实现的某些选择。平衡这些选择进而对网络系统在速度、功率消耗,等等方面有多好地操作具有直接影响。
[0018]—些实施例涉及用于利用自适应路由来控制资源利用的技术(也可以被称为拥塞知晓的适应性阈值或CAAT)。在一个实施例中,在路由逻辑(例如,参考图1-10所讨论的逻辑150)处确定用于传输传入消息(其将在输入端口处被接收)的输出端口。所述路由逻辑将基于在通信地耦合到所述路由逻辑的一个或多个其他路由逻辑处检测到的拥塞信息,来从第一输出端口和第二输出端口中选择输出端口。所述第一输出端口将为所述传入消息提供确定性路由,所述第二输出端口将为所述传入消息提供自适应路由。
[0019]各种计算系统可以被用来实现此处所讨论的各实施例,诸如参考图1-2和9-10所讨论的系统。更具体而言,图1示出了根据本发明的一个实施例的计算系统100的框图。系统100可包括一个或多个代理102-1到102-M(此处统称为“代理102”或更一般的“代理102”)。在一个实施例中,代理102中的一个或多个可以是诸如参考图9-10所讨论的计算系统之类的计算系统的组件中的任何一个。
[0020]如图1所示,代理102可以通过网络结构(network fabric) 104进行通信。在一个实施例中,网络结构104可包括允许各种代理(诸如计算设备)传递数据的计算机网络。在一个实施例中,网络结构104可包括通过串行(例如,点对点)链路和/或共享通信网络(在一个实施例中,可被配置成环形)进行通信的一个或多个互连(或互连网络)。例如,一些实施例可以助益允许与完全缓冲双列直插式存储器模块(FBD)进行通信的链路上的组件调试或验证,例如,在FBD链路是用于将存储器模块耦合到主机控制器设备(诸如处理器或存储器中枢)的串行链路的情况下。调试信息可以从FBD通道主机传输,以便可以通过通道流量跟踪捕捉工具(诸如一个或多个逻辑分析仪)沿着通道观察到调试信息。
[0021]在一个实施例中,系统100可以支持分层协议方案,该方案可包括物理层、链路层、路由层、传输层,和/或协议层。结构104还可以进一步促进从一个协议(例如,缓存处理器或缓存知晓存储器控制器)到用于点对点或共享网络的另一个协议的数据传输(例如,以分组的形式)。在某些实施例中,网络结构104还可以提供遵循一个或多个缓存一致性协议的通信。
[0022]进一步地,如图1中的箭头方向所示,代理102可以通过网络结构104传输和/或接收数据。因此,某些代理可以使用单向链路,而其他代理可以使用双向链路来进行通信。例如,一个或多个代理(诸如代理102-M)可以传输数据(例如,通过单向链路106),其他代理(诸如代理102-2)可以接收数据(例如,通过单向链路108),而某些代理(诸如代理102-1)可以传输与接收数据(例如,通过双向链路110)。
[0023]另外,代理102中的至少一个可以是归属代理,并且代理102中的一个或多个可以是请求或缓存代理。一般而言,请求/缓存代理向归属节点/代理发送对对应的“归属代理”与其相关联的存储器地址的访问的请求。进一步,在一个实施例中,代理102中的一个或多个(只示出了一个,代理102-1)可以访问诸如存储器120之类的存储器(该存储器可以专用于代理或与其他代理共享)。在某些实施例中,代理102中的每一个(或者至少一个)可以耦合到存储器120,该存储器120要么与代理在同一个管芯上,要么以别的方式可被代理访问。如图1所示,网络结构104可包括一个或多个路由逻辑150,以耦合两个代理,以允许代理间的通信。此外,在一个实施例中,非常薄的硬件网络接口将每个代理102耦合到一个或多个路由逻辑150。薄的硬件网络接口可以类似于但是互补于下面所描述的Y单元(Yunit)和垫片(Shim)硬件块。
[0024]图2是根据一实施例的计算系统200的框图。系统200包括多个插槽202-208 (示出了四个,但是一些实施例可以具有更多或更少插槽)。每一个插槽都包括处理器。而且,系统200中的各个代理还可以通过路由逻辑150进行通信。尽管路由逻辑150只被示为耦合202-208,但是,路由逻辑150可以耦合系统200中的其他代理。此外,取决于实现,在系统中可以存在更多或更少的路由逻辑块。另外,每一个插槽都通过点对点(PtP)链路,或差分互连,诸如快速路径互连(QPI),MIPI (移动行业处理器接口),等等,耦合到其他插槽。如参考图1的网络结构104所讨论的,每一个插槽都耦合到系统存储器的本地部分,例如,通过包括动态随机存取存储器(DRAM)的多个双列直插存储器模块(DIMM)形成的。
[0025]在另一个实施例中,网络结构可以用于任何片上系统(SoC或S0C)应用,使用自定义或标准接口,诸如,用于AMBA(高级微控制器总线体系结构)、0CP (开放内核协议)、MIPI (移动行业处理器接口)、PCI (外围组件互连)或PCIe (外围组件互连快速)的ARM兼容的接口。
[0026]一些实施例使用允许在基于PC (个人计算机)的系统(诸如基于PCI的系统)使用异构资源而无需对IP资源本身作出任何更改的技术,诸如AXI/0CP技术。一些实施例提供两个非常薄的硬件块(此处称为Y单元和垫片),它们可以被用来将AXI/OCP IP插入到自动生成的互连结构中,以创建PCI兼容系统。在一个实施例中,Y单元的第一(例如,北)接口连接到适配器块,该适配器块接口至PCI兼容总线,诸如直接媒体接口(DMI)总线,PCI总线,或外围组件互连快速(PCIe)总线。第二(例如,南)接口直接连接到非PC互连,诸如AXI/0CP互连。在各实现中,此总线可以是0CP总线。
[0027]在某些实施例中,Y单元通过将PCI配置周期转换为目标IP能够理解的事务,来实现PCI枚举。此单元还执行从可重新定位的PCI地址到固定的AXI/0CP地址以及相反的地址转换。Y单元还可以进一步实现一种排序机制,用以满足生产者-消费者模型(例如,PCI生产者-消费者模型)。单个IP又通过专用PCI垫片,连接到互连。每一垫片都可以为对应的IP实现整个PCI头部。Y单元将对PCI头部和设备存储器空间的所有访问路由到垫片。垫片消耗所有头部读/写事务,并将其他事务传递到IP。在某些实施例中,垫片还为IP实现所有功率管理相关特征。
[0028]如此,并非是单块兼容性块,实现Y单元的一些实施例采取分布式方法。在Y单元中实现了跨所有IP共同的功能,例如,地址转换和排序,而在垫片中实现针对IP定制的诸如功率管理、错误处理等等之类的IP专用功能。
[0029]如此,可以利用对Y单元的最小的更改,添加新IP。例如,在一种实现中,可以通过在地址重定向表中添加新条目,来进行更改。尽管垫片是IP专用的,但是,在某些实现中,大量的功能(例如,多于90% )是跨所有IP共同的。这允许新IP的现有垫片的快速重新配置。如此,一些实施例还允许在没有修改的情况下使用自动生成的互连结构。在点对点总线体系结构中,设计互连结构是一项具有挑战性的任务。上文所描述的Y单元方法利用最小的努力将行业生态系统贯彻到PCI系统中,而不要求对行业标准工具的任何修改。
[0030]如图2所示,每一个插槽都耦合到存储器控制器(MC/归属代理(
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1