CN108027789A - 具有多级仲裁的互连件的服务质量 - Google Patents
具有多级仲裁的互连件的服务质量 Download PDFInfo
- Publication number
- CN108027789A CN108027789A CN201680052399.5A CN201680052399A CN108027789A CN 108027789 A CN108027789 A CN 108027789A CN 201680052399 A CN201680052399 A CN 201680052399A CN 108027789 A CN108027789 A CN 108027789A
- Authority
- CN
- China
- Prior art keywords
- bag
- priority
- computing element
- moderator
- priority class
- 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
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
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/37—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
-
- 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
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/205—Quality of Service based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Bus Control (AREA)
Abstract
公开用以提供具有多级仲裁的总线互连件的服务质量的技术。源计算元件用优先级类别和/或积分数目来标记包,所述优先级类别和/或积分数目是基于到包的目的地计算元件的距离。控制对总线互连件的存取的仲裁器执行仲裁操作以基于每个包的优先级水平和/或积分数目来服务具有更高相对优先级的包。
Description
相关申请的交叉参考
本申请案主张2015年9月14日申请的美国申请案第14/853,066号的优先权,所述美国申请案让与给本申请案的受让人,且特此明确地以全文引用的方式并入本文中。
技术领域
本文中公开的方面涉及总线互连件(在本文中也被称作“总线”或“互连件”)的领域。更具体地说,本文中公开的方面提供具有多级(也被称作多层(multi-level))仲裁的总线互连件的服务质量。
背景技术
集成电路中的组件(例如处理器、存储器和高速缓冲存储器)通常经由总线互连件来连接。现代互连件包含多个维度(例如x、y及z维度)中的数据传输路径,且沿互连件从源到其目的地的路由包包含由多个不同仲裁器进行的各个级的仲裁。在每个级应用公平的仲裁方案对于所有包来说并不公平。当对每个仲裁器应用公平的仲裁时,包的平均时延较高。因此,公平的仲裁方案可能导致总线的利用欠佳,且不允许使用总线应用包的服务质量(QoS)。然而,应用总线互连件的QoS的任何方案必须提供成本较低及尽可能简单的优先级传播。
发明内容
本文中公开的方面通过用优先级指示标记包提供具有多层和/或多级仲裁的总线互连件的服务质量(QoS)。在至少一个方面中,优先级的指示至少部分地基于从包源到包目的地的距离。
在一个方面中,一种集成电路包括用于控制对总线互连件的存取的第一仲裁器。第一仲裁器被配置成在第一输入端口处接收具有第一优先级的第一包,以及接收具有第二优先级的第二包,其中第一优先级和第二优先级是基于到第一包和第二包的对应目的地的距离。第一仲裁器进一步被配置成在确定第一优先级相较第二优先级是更高的相对优先级之后转送第一包。
在另一方面中,一种方法包括在配置成控制对总线互连件的存取的第一仲裁器处接收具有第一优先级的第一包。所述方法进一步包括通过第一仲裁器接收具有第二优先级的第二包,其中第一优先级和第二优先级是基于到第一包和第二包的对应目的地的距离。所述方法进一步包括在确定第一优先级相较第二优先级是更高的相对优先级之后通过第一仲裁器转送第一包。
在另一方面中,一种设备包括用于接收具有第一优先级的第一包的装置。所述设备进一步包括用于接收具有第二优先级的第二包的装置,其中第一优先级和第二优先级是基于到第一包和第二包的对应目的地的距离。所述设备可进一步包括在确定第一优先级相较第二优先级是更高的相对优先级之后转送第一包的装置。
在另一方面中,一种设备包括配置成产生第一包的第一计算元件,所述第一包指定第一计算元件作为源以及第二计算元件作为目的地。所述设备进一步包括耦合到第一计算元件的第一接口。所述接口可配置成在第一接口的路由表中识别第一包的优先级,以及将优先级的指示***第一包中,其中所述优先级是基于从第一计算元件到第二计算元件的距离。
在另一方面中,一种方法包括通过第一计算元件产生第一包,所述第一包指定第一计算元件作为源以及第二计算元件作为目的地。所述方法进一步包括在耦合到第一计算元件的第一接口的路由表中识别第一包的优先级,其中所述优先级是基于从第一计算元件到第二计算元件的距离。所述方法进一步包括通过第一接口将优先级的指示***第一包中。
在再一方面中,一种设备包括用于产生第一包的装置,所述第一包指定经由总线互连件连接的多个计算元件中的第一计算元件作为源以及多个计算元件中的第二计算元件作为目的地。所述设备进一步包括用于识别第一包的优先级的装置,其中所述优先级是基于从第一计算元件到第二计算元件的距离。所述设备进一步包括用于将优先级的指示***第一包中的装置。
通过用优先级指示标记包,本文中公开的方面提供总线互连件的服务质量。可通过源计算元件使用查询表来确定优先级的指示,所述优先级是基于到目的地计算元件的距离。这样做在总线互连件中提供低成本优先级传播。总线互连件中的仲裁器可在服务具有较低优先级指示的包之前服务具有较高优先级指示的包。这样做可提供总线互连件的更高效利用。
附图说明
因此,其中获得且可详细理解以上所述方面(上文简要概述的本公开的方面的更具体描述)的方式可通过参照附图得到。
然而,应注意的是,附图仅说明了本公开的各方面,并且因此不应被认为是其范围的限制,因为本公开可承认其它方面。
图1A到1B说明根据一个方面的实施具有多级仲裁的互连件的服务质量的设备。
图2A到2C说明根据一个方面的配置成提供具有多级仲裁的互连件的服务质量的组件的逻辑视图。
图3是根据一个方面的说明用以提供具有多级仲裁的互连件的服务质量的方法的流程图。
图4是根据一个方面的说明用以建构基于优先级类别的查询表的方法的流程图。
图5是根据一个方面的说明用以建构基于积分的查询表的方法的流程图。
图6是根据一个方面的说明用以配置仲裁器以基于存储在包中的优先级的指示来执行仲裁操作的方法的流程图。
图7是根据一个方面的说明用以处理总线事务的方法的流程图。
图8是根据一个方面的说明集成配置成提供服务质量的互连件的计算装置的框图。
具体实施方式
本文中所公开的方面提供总线互连件的服务质量,所述总线互连件通过用优先级的指示标记包来执行多级仲裁,所述优先级是基于到每个包的目的地的距离。多个源计算元件通过总线互连件来以通信方式耦合。调节对总线互连件的存取的仲裁器可使用优先级的指示来在服务具有更低的相对优先级的包之前服务具有更高的相对优先级的包。一般来说,本文中所公开的方面提供用于用优先级的指示标记包的至少两种方案,也就是优先级类别和积分。
根据优先级类别方案,可定义两种或两种以上优先级类别。优先级类别可基于在集成电路(例如***芯片(SoC))中从源计算元件到目的地计算元件的距离。如本文中所使用,“计算元件”是指连接到总线的任何硬件结构。计算元件的实例包含(但不限于)处理器(CPU)、存储器、高速缓冲存储器、***设备、网络接口和类似物。计算元件之间的距离可基于以下中的至少一个来确定:沿着在源与目的地之间的路径的仲裁器的数目,以及包从源行进到目的地所需的周期的数目。将给定计算元件连接到总线的每个接口可包含查询表(也被称作路由表),所述查询表指定每个目的地计算元件的优先级类别。在至少一个方面中,指配给包的优先级类别是不变的,因为包从源到目的地保留相同的优先级类别。
因此,在源计算元件根据优先级类别方案产生第一包时,将源连接到总线互连件的接口可参考查询表以基于包的目的地(计算元件)来确定第一包的优先级类别。接口随后可将优先级类别的指示***第一包中。控制对总线互连件的存取的第一仲裁器可在第一输入端口处接收指定第一优先级类别的第一包,且在第二输入端口处接收指定第二优先级类别的第二输入包。第一优先级类别和第二优先级类别分别基于到第一包和第二包的对应目的地的距离。第一仲裁器可对第一优先级类别和第二优先级类别进行比较,且基于确定第一优先级类别相较第二优先级类别为更高的相对优先级而转送第一包。
根据基于积分的方案,源接口用积分数目的指示标记包。积分数目可基于从源计算元件到目的地计算元件的距离、总线互连件的带宽以及总线互连件的时延中的一或多个的函数。在至少一个方面中,源接口存储指定积分数目的查询表,所述积分数目应基于包的目的地而给予包。在从源计算元件接收包时,源接口可参考查询表以确定包应接收多少积分。源接口随后可将积分数目的指示***到包中。沿着总线互连件的每个基于积分的仲裁器在服务具有较低积分数目的包之前服务具有较高积分数目的包。在服务包时,基于积分的仲裁器可减少包的积分数目,且在一些方面中使包的积分数目减少预定义的数目(所述预定义的数目可特定针对于仲裁器)。一旦减少,更新后的积分数目的指示就可随后存储在包中。
因此,在源计算元件根据基于积分的方案产生第一包时,源接口可参考查询表以基于包的目的地计算元件来确定第一包的积分数目。源接口随后可将积分数目的指示***第一包中。控制对总线互连件的存取的第一仲裁器可在第一输入端口处接收第一包,且在第二输入端口处接收指定第二积分数目的第二输入包。第一积分数目和第二积分数目分别基于到第一包和第二包的对应目的地的距离。第一仲裁器可对第一积分数目和第二积分数目进行比较,且基于确定第一积分数目相较第二积分数目为更高的相对优先级而转送第一包。
另外,本文中所公开的方面提供用于总线事务的每个阶段的不同查询表。例如,如果总线事务包含请求阶段、数据阶段、窥探阶段和响应阶段,那么源接口可包含用于事务的每个阶段的查询表。源接口随后可参考与总线事务的当前阶段相对应的查询表,且用优先级的指示(例如积分或优先级类别)标记包。
另外,本文中所公开的方面可指配从源行进到目的地的每个维度的优先级的单独指示。一般来说,现代的总线互连件内置多个维度。举例来说,三维总线互连件可视为具有x维度、y维度和z维度。在此实例中,包可用用于三个维度中的每一个的优先级的指示来标记,其中优先级的每个指示是基于从包源到包目的地的距离(在每个对应维度中)。因此,x维度的优先级将基于在x维度中到目的地的距离,而y维度的优先级将基于在y维度中到目的地的距离,且z维度的优先级将基于在z维度中到目的地的距离。源接口可因此包含指定总线互连件中的每个维度的优先级类别和/或积分的查询表。
又另外,本文中所公开的方面可提供在基于积分的方案与基于优先级类别的方案之间进行映射的能力。举例来说,路由器(包含多个仲裁器)可接收指定积分数目的包。路由器可包含将积分数目转换成优先级类别的逻辑,使得路由器中的基于优先级类别的仲裁器可基于转换的优先级类别来服务包。类似地,路由器可包含将优先级类别转换成积分数目的逻辑。
本公开的方面同等地适用于总线互连件的多种类型,包含所有环形总线结构、网状互连件以及片上网络(network on chip,NoC)互连件。在本文中使用任何特定总线类型作为参考实例不应被视为限制本公开。
图1A说明根据一个方面的实施具有多级仲裁的互连件的服务质量的设备。图1A描绘集成电路100的组件的逻辑视图。在至少一些方面中,集成电路100可以是***芯片(SoC)。如所展示,集成电路100包含多个计算元件1011-9,其配置成产生和/或转送用于总线事务的包。计算元件101可以是任何类型的计算元件,例如处理器、网络接口、存储器、高速缓冲存储器、数字信号处理器(DSP)和类似物。用于产生和转送数据包的逻辑可使用硬件、软件、固件或其任何组合来实施。计算元件101经由总线104以通信方式耦合。并不为清楚起见而标记总线104的每个区段。如所展示,总线104是二维总线,因为包可以两种不同维度使总线104行进。然而,总线104可具有任何数目的维度。总线104是多级总线,其中多个路由器1031-9被配置成通过计算元件1011-9来控制对总线104的区段的存取。一般来说,每个路由器103包含一或多个仲裁器(未图示),所述一或多个仲裁器执行仲裁操作以用由计算元件1011-9产生的包来控制对总线104的区段的存取。
如所展示,计算元件1011-9经由对应源接口1021-9连接到总线104。每个源接口1021-9包含逻辑(未图示),所述逻辑配置成用优先级的指示来标记由计算元件1011-9产生(或转送)的包。源接口的实例包含桥接器,其中桥接器将给定计算元件1011-9连接到总线104。每个源接口1021-9可基于存储在源接口1021-9的一或多个查询表中的优先级信息来将优先级的指示***包中。可使用硬件、软件、固件或其任何组合来***优先级的指示(例如优先级类别或积分数目)。一般来说,存储在查询表中的优先级信息是基于从相对应的源计算元件1011-9到对应目的地计算元件1011-9的距离。
图1A进一步描绘查询表110的实例。查询表110是基于优先级类别的查询表的实例,因为查询表110的每个条目指定至少两个不同预定义优先级类别的优先级类别。如所展示,表120基于从源计算元件1011-9到目的地计算元件1011-9的距离来提供实例优先级类别。在至少一个方面中,所述距离可基于沿着从源计算元件1011-9到目的地计算元件1011-9的路径的多个路由器1031-9(或仲裁器,其中每个路由器1031-9考虑一个仲裁器)的中的一或多个。在其它方面中,所述距离可基于包从源计算元件1011-9行进到目的地计算元件1011-9所需的周期的数目。
如所展示,表120定义两个实例优先级类别,所述优先级类别是基于设置在源计算元件1011-9与目的地计算元件1011-9之间的仲裁器(或路由器103)的数目。然而,可定义任何数目的优先级类别。类似地,优先级类别可基于绝对值(例如1个仲裁器)或值范围(例如0到2个仲裁器)。如所展示,表120反映优先级类别指示为“0”,其中一个或少于一个路由器1031-9设置在源计算元件1011-9与目的地计算元件1011-9之间的路径上。类似地,表120反映优先级类别指示为“1”,其中超过一个但是小于或等于三个路由器103设置在源计算元件1011-9与目的地计算元件1011-9之间。在至少一个方面中,因为优先级类别1跟与计算元件101之间的距离比优先级类别0更大有关,所以路由器103中的仲裁器可在服务标记有优先级类别0的包之前服务标记有优先级类别1的包,因为优先级类别1相较优先级类别0为更高的相对优先级。
实例查询表110包含基于集成电路100的拓扑从计算元件1011的角度来计算的值。因此,查询表110可存储在源接口1021中。然而,在一些方面,查询表可存储在计算元件101中,其可包含由接口102实施的逻辑,以用优先级的指示(例如优先级类别或积分数目)标记包。如所展示,查询表110包含目的地列111、总线104的x维度(或东/西方向)的列112以及总线104的y维度(或北/南方向)的列113。目的地列111指定计算元件101,其是由计算元件1011发送的包的目的地。列112和113定义由接口102使用的值,以用适当的优先级类别来标记由计算元件1011产生(或转送)的包,所述优先级类别是基于到对应目的地计算元件1012-9的距离。使用对应于“方向:距离:优先级类别”的实例格式来展示列112、113中的值。然而,列112、113可采用适合于指定用于包的优先级的至少一个指示(例如优先级类别或积分数目)的任何格式。“方向”分量可以是指示是否经由接口1021的东或西端口来转送包的二进位值(类似地,在添加到包时,此值可由路由器103使用以在适当的方向上转送包)。“距离”分量可指定从源计算元件1011到目的地计算元件1012-9的距离(以路由器103的数目测量)。“优先级”分量指定在表120中定义的两个优先级类别中的一个。
因此,如所展示,用于目的地1013的列112指定实例条目为“1:2:1”。条目指示在识别由源1011产生(或转送)的包时,接口1021应通过接口1021的东端口转送所述包,指示在x维度中的两个路由器/仲裁器设置在源1011与目的地1013(例如路由器1034与1035)之间,且所述包应标记有优先级类别1作为x维度中的优先级的指示。类似地,如所展示,用于目的地1013的列113中的条目是“1:1:0”。此条目反映计算元件1013在计算元件1011的北部,反映在y维度中的一个路由器/仲裁器设置在源1011与目的地1013(例如路由器1032)之间,且所述包应基于在源1011与目的地1013之间的y维度中的路由器103的数目而标记有优先级类别0作为y维度中的优先级的指示。因此,如所展示,给定包可针对总线104的x维度和y维度具有不同优先级。
图1A进一步描绘由两个实例包131和132穿过的路线。如所展示,包131起源于计算元件1011,而包132起源于计算元件1017。出于此实例的目的,两个包指定同一目的地,即计算元件1016。通过参看路由表110,接口1021可基于计算元件1017的目的地用优先级类别1(在x维度中)标记包131。类似地,接口1027可参考路由表110的其自身版本(其基于总线拓扑结构从计算元件1017的角度产生),且在x维度中用优先级类别0标记包132(这是因为路由器103未安置于计算元件1017与1016之间的x维度中)。如所展示,包131、132从源到目的地保留静态的优先级。
当每一路由器103接收包131、132时,路由器103的仲裁器执行仲裁操作以允许每周期一个包访问总线104。仲裁器可比较包的优先级类别以确定首先服务哪个包。举例来说,假设包131、132在路由器1036中的仲裁器的不同输入队列中,仲裁器可比较包131、132中所指定的优先级类别。仲裁器随后可确定指定优先级类别1的包131具有比包132更高的相对优先级,所述包132指定优先级类别0。因此,如所展示,路由器1036的仲裁器在包132之前服务包131,从而将包131转送到接口1026(且随后转送到目的地计算元件1016)。在路由器1036将包132转送到其目的地之前,包132可能经受一或多个额外仲裁操作。
图1B说明其中图1A的集成电路100实施基于积分的仲裁方案的方面。为实施基于积分的仲裁方案,接口1021-9(或计算元件1011-9)包含被配置成在包中***对积分数目的指示的逻辑。积分数目可基于考虑以下中的一或多个的函数:(i)从源计算元件1011-9到目的地计算元件1011-9的距离,(ii)总线104的带宽,及(iii)总线104的时延。接口1021-9(及/或计算元件1011-9)包含查询表,所述查询表指定应分配给以特定目的地计算元件1011-9为目标的包的积分数目。如所展示,表140反映从计算元件1011的角度限定的基于积分的查询表。查询表140包含用于目的地计算元件1012-9的列141、指定x维度中的积分的列142,和指定y维度中的积分的列143。列142、143的格式是“方向:距离:积分”的实例格式。列142、143的“方向”分量对应于列112、113的“方向”分量。类似地,“距离”分量对应于源计算元件1011与目的地计算元件1011-9之间的距离。距离可基于源与目的地之间的路由器103(或仲裁器)的数目,或包从源行进到目的地所需的周期数目。列142、143的“积分”分量指定通过计算元件1011产生或转送的包所针对的相应目的地计算元件1012-9的积分数目。如同查询表110,查询表140是示范性的,且特定值及/或其中的格式化不应被视为限制本公开。一般来说,查询表110、140可呈足以为以给定目的地计算元件1011-9为目标的包指定对优先级的指示(在此实例中,积分数目)的任何格式。
如所展示,举例来说,查询表140给以计算元件1019为目标的包在x维度中提供0积分且在y维度中提供1个积分。因此,当源接口1021接收将计算元件1011指定为源且将计算元件1019指定为目的地的包时,源接口1021中的逻辑可将计算元件1019用作索引值来参考表140。逻辑可确定用于计算元件1019的条目在x维度中提供0积分且在y维度中提供1个积分。因此,源接口1021中的逻辑可在包中***对x维度中的0个积分的指示和对y维度中的1个积分的指示。在至少一个方面中,源接口1021中的逻辑可能对x维度和y维度中的积分进行求和且在包中***经求和积分数目的指示。源接口1021中的逻辑随后可将包转送到总线104上。
为实施基于积分的方案,路由器103的仲裁器包含被配置成基于每一包中所指定的积分数目执行仲裁操作的逻辑。仲裁器可比较仲裁器的输入队列中的每一包的积分数目,且服务具有最高积分数目的包(例如,通过经由仲裁器的输出端口转送所述包)。仲裁器(或路由器103)可以包含在服务包时使包的积分减少预定义积分数目的逻辑(未图示)。预定义积分数目可特定针对每一仲裁器/路由器,且可基于仲裁器/路由器的复杂度。举例来说,路由器1034可减少2个积分,路由器1035可减少1个积分。在经由仲裁器的输出端口转送包之前,逻辑可更新包中的积分数目以反映减少的积分数目。
图1B说明两个实例包,即通过计算元件1011产生且将计算元件1016定为目的地的包133,和通过计算元件1019产生并且也将计算元件1016定为目的地的包134。如所展示,包133最初通过源接口1021用包具有3个积分的指示加以标记(这可指定于存储在源接口1021中的查询表140中)。为清楚起见,图1B中描绘的实例反映其中对积分的单个指示指定于包133、134中(即x维度和y维度中的积分的总和指定于表140中)的方面。然而,如先前所指示,包133、134可指定对每一维度的积分的单独指示。如所展示,当路由器1034转送包133时,减少两个积分,使包133具有一个剩余积分。当路由器1035在总线104上转送包133时,减少一个积分,使包133具有零个剩余积分。如所展示,源接口1029最初用4个积分标记包134(这可指定于特定针对源1019且存储在源接口1029中的查询表140中)。如所展示,当服务包134时,路由器1037、1038和1039各自减少一个积分。因此,当包134到达路由器1036时,包134指定1个积分的指示。当包133和134在路由器1036中的仲裁器的输入端口中时,仲裁器将比较每一包中的积分数目以确定哪个包具有更高相对优先级。如所展示,由于包134具有1个积分,多于包133中所指定的零个积分,所以路由器1036中的仲裁器将在转送包133之前转送包134。
在至少一个方面中,路由器1031-9可以包含基于积分的仲裁器和基于优先级类别的仲裁器两种。又另外,一些路由器1031-9可以仅包含基于积分的仲裁器,而其它路由器1031-9仅包含基于优先级类别的仲裁器。为支持这些混合部署,路由器1031-9可以包含将积分转换成优先级类别且将优先级类别转换成积分的逻辑。
又另外,查询表110、140可以特定针对总线事务的(多个阶段中的)一或多个阶段。源接口1021-9(及/或计算元件1011-9)可因此具有针对总线事务的每一阶段的查询表。举例来说,总线事务可具有(但不限于)命令阶段、数据阶段、响应阶段和窥探阶段。因此,在这些方面中,源接口1021-9可具有命令阶段查询表、数据阶段查询表、响应阶段查询表和窥探阶段查询表。另外,给定查询表可针对不同维度提供不同方案。举例来说,查询表110可针对x维度指定积分,且针对y维度指定优先级类别。
图2A说明根据一个方面的集成电路100的源接口102的逻辑视图。如先前所指示,源接口102将计算元件101连接到总线104。如所展示,源接口102包含优先级管理器201和查询表202。查询表202可指定优先级的指示,所述指示至少部分地基于从经由源接口102连接到总线104的计算元件101到集成电路100的不同计算元件101的距离。查询表202可指定积分、优先级类别,或其任何组合。一般来说,优先级的指示在长度方面可以是任何位数。如先前参考图1A到1B所描述,查询表202可以特定针对总线事务的特定阶段。另外,查询表202可针对总线互连件中的每一维度指定对优先级的指示。
优先级管理器201是被配置成将优先级的指示***到通过计算元件101产生(或转送)的包中的逻辑。优先级的指示可基于预定义格式化,且在每一包中***预定义位置。当源计算元件101试图经由总线104将包作为总线事务的阶段的部分发射时,源接口102中的优先级管理器201可以参考对应于总线事务的阶段的查询表202。优先级管理器201可将包的目的地用作到适合的查询表202中的索引。优先级管理器201随后可确定与目的地相关联的积分数目及/或优先级类别,且在包中***积分数目及/或优先级类别的指示。优先级管理器201随后可转送包以用于在多个阶段中通过仲裁器205仲裁。优先级管理器201可以使用硬件、软件、固件或其任何组合实施。
图2B是路由器103的组件的逻辑视图。如所展示,路由器103包含仲裁管理器204、一或多个仲裁器205和一或多个查询表202。仲裁管理器204是被配置成促进由路由器103接收到的包的路由的逻辑。仲裁管理器204可以使用硬件、软件、固件或其任何组合实施。仲裁管理器204可进一步提供被配置成将对包中的优先级类别的指示转换成对积分的指示的逻辑。类似地,仲裁管理器204可提供被配置成将包中的积分的指示转换成对优先级类别的指示的逻辑。仲裁管理器204可进一步包含被配置成将转换指示***到包中的逻辑。又另外,仲裁管理器204可以包含被配置成计算用于包的更新优先级类别或积分数目的逻辑。举例来说,路由器103可接收剩有零个积分但尚未达到其目的地的包。仲裁管理器204可计算用于包的更多积分,且在转送包之前在所述包中***所计算积分的指示。在至少一个方面中,不同路由器103中的仲裁管理器204在计算用于包的更新优先级类别或积分数目时不必应用相同算法。举例来说,第一路由器103中的一个仲裁管理器204可应用与第二路由器103中的第二仲裁管理器204所应用的算法相比计算不同的积分数目或优先级类别的算法。仲裁管理器204可进一步包含被配置成经由总线104通过经由适合输出端口(其可能受一或多个仲裁器205控制)路由包来将所述包路由到其目的地的逻辑。在至少一个方面中,仲裁管理器204可经由包中的方向的指示(例如查询表110、140中所描绘的北/南或东/西指示)确定适合的输出端口。在另一方面中,路由器103的仲裁管理器204可参考存储在查询表202中的路由信息以确定用于包的适合输出端口。
仲裁器205是被配置成控制对共享资源,例如总线104的访问的装置。在一些方面中,仲裁器205包含通过基于存储在包中的对优先级的指示(例如积分或优先级类别)服务包而提供服务质量(QoS)的优先级仲裁器。路由器103可以包含被配置成基于优先级类别进行仲裁的仲裁器205和被配置成基于积分进行仲裁的仲裁器205。仲裁器205可以包含逻辑(硬件、软件或固件),所述逻辑可以确定是否更新由仲裁器205服务的包中的积分数目(或包的优先级类别)。这些逻辑的实例包含递增逻辑和递减逻辑。类似地,仲裁器205可以包含并不修改包的优先级类别或积分数目的逻辑。在至少一个方面中,这些逻辑包含于路由器103的仲裁管理器204中。
图2C描绘仲裁器205的更详细视图。如所展示,仲裁器205包含一或多个输入端口2100-N。当在输入端口210处接收到包时,所述包放置于对应输入队列2110-N中。接着,仲裁逻辑2120-N基于存储在包中的优先级的指示允许输入队列2110-N中的包对输出端口2130-N的存取。仲裁逻辑2120-N被配置成首先允许具有较高相对优先级的包。举例来说,仲裁逻辑2120-N可比较存储在包中的优先级类别值,且服务具有最高优先级类别的包。举例来说,如果输入端口2100中的包x指定优先级类别1,而输入端口210N中的包y指定优先级类别0,那么仲裁逻辑2120-N可以基于优先级类别值的比较(其中较高优先级类别值指示较高相对优先级)在允许包x对输出端口2130-N的接入之前允许包y对对应输出端口2130-N的存取。仲裁器205可以是优先级仲裁器,原因在于仲裁器205对于具有每一优先级等级(例如,优先级类别,或积分数目)具有输入队列211。在这些方面中,仲裁逻辑2120-N被配置成确保在较低优先级包之前服务较高优先级队列中的包。在平局(例如,优先级类别值相等)的情况下,仲裁逻辑2120-N执行公平仲裁。在至少一个方面中,仲裁逻辑2120-N包含仲裁管理器204的至少一部分。
类似地,仲裁逻辑2120-N可对存储于包中的积分数目进行比较,且为具有最大积分数目的包服务。举例来说,如果输入端口2100中的包x指定1积分指示,而输入端口210N中的包y指定2积分指示,那么仲裁逻辑2120-N可基于积分的比较(其中较高积分数目指示较高相对优先级)在允许包x对输出端口2130-N的存取之前允许包y对对应输出端口2130-N的存取。在平局(例如积分数目相等)情况下,仲裁逻辑2120-N执行公平仲裁。
当允许对输出端口2130-N的存取时,随后包可通过不同路由器103中的仲裁器205穿越总线104到另一仲裁平台,或包可到达目的地计算元件101处。
图3是根据一个方面的说明用以提供具有多级仲裁的互连件的服务质量的方法300的流程图。一般来说,方法300的步骤在集成电路例如***芯片(SoC)中提供源接口(或计算元件),其至少部分地基于到目的地计算元件的距离用优先级指示对包进行标记。优先级指示可以是优先级类别或积分数目。计算元件可利用总线互连件例如环形总线、网状互连件或片上网络(NoC)互连件来连接。一或多个路由器中的仲裁器可控制经过总线周期对总线的一部分的存取。仲裁器可以是优先级仲裁器,其在为具有较低相对优先级指示的包服务之前为具有较高相对优先级指示的包服务。举例来说,仲裁器将在为具有5积分的包服务之前为具有6积分的包服务。
如所展示,方法300开始于参考图4更详细地描述的步骤310,其中基于优先级类别的查询表是基于总线互连件的拓扑而建构。在一个方面中,基于优先级类别的查询表可存储于将计算元件连接到总线互连件的源接口(例如接口102)中。在另一方面中,基于优先级类别的查询表可存储于计算元件自身中。这样做提供用基于到包的目的地计算元件的距离的优先级类别的指示对包进行标记的方式。在步骤320处,参考图5更详细地描述,基于积分的查询表是基于总线互连件的拓扑而建构。在一个方面中,基于积分的查询表可存储于将计算元件连接到总线互连件的源接口(例如接口102)中。在另一方面中,基于积分的查询表可存储于计算元件自身中。这样做提供用基于到包的目的地计算元件的距离的积分数目的指示对包进行标记的方式。
在步骤330处,逻辑是在源接口处提供以用k比特优先级指示来标记包。逻辑配置成通过参看查询表使用包的目的地作为索引来确定k比特优先级。逻辑随后可在包中***对应k比特优先级。k比特优先级指示可对应于优先级类别和/或积分数目。在步骤340处,参考图6更详细地描述,控制对总线互连件的存取的仲裁器配置成基于对包中的k比特优先级指示进行比较来执行仲裁操作。举例来说,基于积分的仲裁器可对两个或更多个包中的积分数目进行比较,且允许具有最高积分数目的包对输出端口的存取(和对应的对总线的存取)。类似地,基于优先级类别的仲裁器可对两个或更多个包中的k比特优先级类别指示进行比较,且允许具有最高优先级类别的包对输出端口的存取。在步骤350处,参考图7更详细地描述,总线事务可在集成电路上处理。举例来说,计算元件例如处理器可请求存储于较高级存储器中的数据,这是在一系列总线事务阶段中完成。
图4是根据一个方面的说明对应于建构基于优先级类别的查询表的步骤310的方法400的流程图。一般来说,方法400的步骤描述在集成电路(例如SoC)中各计算元件生成查询表的技术,所述查询表指定靶向集成电路中的其它计算元件的包的优先级类别。举例来说,当设计集成电路时,工程师可执行方法400的步骤以手动地产生基于距离的优先级类别查询表。类似地,工程师可设计计算机程序以使方法400的步骤自动化从而产生基于优先级类别的查询表。又另外,集成电路中实施方法400的步骤的逻辑或固件可自动地建构基于优先级类别的查询表。优先级类别是基于计算元件之间的距离,其中距离是基于计算元件之间的路径上的仲裁器(或路由器)的数目和/或包从源行进到目的地所需的总线周期的数目来测量。
如所展示,方法400开始于步骤410,其中定义至少两个优先级类别。实例优先级类别描绘于图1A的表120中。优先级类别可基于计算元件之间的距离的测量值。举例来说,其中距离是基于计算元件之间的仲裁器的数目,零到两个仲裁器可定义第一优先级类别,而三个或更多个仲裁器可定义第二优先级类别。其中距离是基于包达到目的地的周期的数目来定义,一到五个周期可定义第一优先级类别,六到十个周期可定义第二优先级类别,且十个以上周期可定义第三优先级类别。一般来说,与较大距离(就仲裁器的数目或周期的数目而言)相关联的优先级类别定义为属于较高相对优先级。另外,优先级类别可针对总线事务的不同阶段而定义,其中总线事务的较重要阶段获得较高优先级。举例来说,针对总线事务的请求阶段的优先级类别可指定零到两个仲裁器为属于第二优先级类别,而三个或更多个仲裁器属于第三优先级类别(且因此,第一优先级类别并不指派给请求阶段包)。
在步骤420处,执行包含步骤430到490的循环,以建构在集成电路中作为源计算元件的各计算元件的基于优先级类别的查询表。在步骤430处,对于与作为源的当前计算元件相关的各目的地计算元件,执行包含步骤440到470的循环。在步骤440处,确定从当前源计算元件到当前目的地计算元件的距离。所述距离可包含在总线互连件的各维度中的距离,例如三维互连件中的x维度、y维度和z维度。距离可基于计算元件之间的仲裁器的数目和/或包从源行进到目的地所需的周期的数目来确定。
在步骤450处,优先级类别可针对互连件的各维度基于从源到目的地的距离来确定。举例来说,继续请求阶段的上述优先级类别(基于仲裁器的数目),如果在x维度中距离是一个仲裁器,在y维度中距离是两个仲裁器,且在z维度中距离是四个仲裁器,那么当前源到当前目的地的查询表中的条目将指定在x维度和y维度中的第二优先级类别(零到两个仲裁器),和在z维度中的第三优先级类别(三个或更多个仲裁器)。当源计算元件随后产生靶向当前目的地的包作为总线事务的请求阶段的部分时,优先级管理器201(或源自身)可用在各维度中的优先级类别的指示对包进行标记。使用对于总线事务的各阶段的所定义的优先级类别的所确定的距离,可定义总线事务的各阶段的查询表的条目。
然而,在一些方面,对于各维度可基于在各维度中仲裁器的总数指定通用优先级类别。在这类方面中,查询表可指定在维度所有中仲裁器的总数的范围和/或绝对值,且优先级管理器201可用单个优先级类别的指示对包进行标记。
在步骤460处,在步骤450处确定的当前源到当前目的地的优先级类别的指示可存储于当前源计算元件的接口的查询表中。如先前所指示,总线互连件的各维度的优先级类别可在步骤450处计算。因此,在这类方面中,所计算的各维度的优先级类别可在步骤460处存储于总线互连件的对应维度的查询表中(其中接口存储总线互连件的各维度的查询表)。方法400的步骤470包含关于较多目的地计算元件是否保留与当前源计算元件相关的确定。如果较多目的地计算元件保留,那么方法返回到步骤430。如果没有目的地计算元件保留,那么与当前源计算元件相关的各目的地计算元件的优先级类别已定义,且方法进行到步骤480。在步骤480处,基于优先级类别的查询表可存储于源接口102(和/或计算元件101)中作为查询表202。方法400的步骤490包含对在集成电路中较多源计算元件是否保留的确定。如果较多源计算元件保留,那么方法400返回到步骤420,以建构保留的源计算元件的基于优先级类别的查询表。否则,方法400结束。
图5是根据一个方面的说明对应于建构基于积分的查询表的步骤320的方法500的流程图。一般来说,方法500的步骤描述在集成电路(例如SoC)中各计算元件生成查询表的技术,所述查询表指定靶向集成电路中的其它计算元件的包的积分数目。举例来说,工程师可执行方法500的步骤人工地产生基于积分的查询表。类似地,工程师可设计计算机程序以使方法500的步骤自动化从而产生基于积分的查询表。又另外,集成电路中实施方法500的步骤的逻辑或固件可自动地建构基于积分的查询表。
在步骤510处,用户可定义至少一个函数以基于从源到目的地计算元件的距离、总线互连件的带宽和总线互连件的时延中的一或多个来计算积分。在至少一个方面中,对于总线事务的各阶段可定义不同函数。这样做可促进将较多积分分配到总线事务的较重要阶段,且较少积分分配到总线事务的较不重要阶段。在步骤520处,可任选地确定总线互连件的带宽和/或时延。总线互连件的带宽可通过计算总线宽度与总线速度的乘积来确定。总线的时延可根据基于计算机的模拟来确定,或可基于类似总线互连件的历史时延值来确定。
在步骤530处,执行包含步骤540到590的循环,以建构在集成电路中作为源计算元件的各计算元件的基于积分的查询表。在步骤540处,对于与作为源的当前计算元件相关的各目的地计算元件,执行包含步骤550到580的循环。在步骤550处,确定从当前源计算元件到当前目的地计算元件的距离。所述距离可包含在总线互连件的各维度中的距离,例如三维互连件中的x维度、y维度和z维度。距离可基于计算元件之间的仲裁器的数目和/或包从源行进到目的地所需的周期的数目来确定。
在步骤560处,在步骤510处定义的函数中的一个可应用于计算与当前目的地计算元件相关当前源计算元件的积分数目。在至少一个方面中,总线事务的各阶段的函数可应用于确定总线事务的各阶段的对应积分数目。在一个方面中,积分数目可以是总线互连件的所有维度的积分总数。在此方面中,优先级管理器201可用积分总数的指示对包进行标记。在其它方面中,可使用各维度中的距离来调用函数,以计算在互连件中各维度的积分数目。在步骤570处,所计算的积分数目的指示可存储于当前源计算元件的基于积分的查询表中。
方法500的步骤580包含关于较多目的地计算元件是否保留与当前源计算元件相关的确定。如果较多目的地计算元件保留,那么方法返回到步骤540。如果没有目的地计算元件保留,那么与当前源计算元件相关的各目的地计算元件的积分已定义,且方法进行到步骤590。在步骤590处,基于积分的查询表可存储于源接口102(和/或计算元件101)中作为查询表202。方法500的步骤595包含对在集成电路中较多源计算元件是否保留的确定。如果较多源计算元件保留,那么方法500返回到步骤530,以建构保留的源计算元件的基于积分的查询表。否则,方法500结束。
图6是根据一个方面的说明对应于步骤340以配置仲裁器从而基于存储于包中的优先级指示来执行仲裁操作的方法600的流程图。一般来说,方法600的步骤描述用于设计仲裁器205的技术,所述仲裁器控制对实施多级总线仲裁的总线互连件的存取。如所展示,方法600开始于步骤610,其中对于在集成电路例如SoC中设计的各仲裁器205,执行包含步骤620到680的循环。在步骤620处,在基于积分实施方案与基于优先级类别实施方案之间转换的逻辑提供于仲裁器205(和/或路由器103)中。这类逻辑的实例是仲裁管理器204,所述仲裁管理器配置成将优先级类别转换成积分且将积分转换成优先级类别。举例来说,仲裁管理器204可将0优先级类别转换成1积分,且将6积分转换成2优先级类别。
在步骤630处,电流仲裁器205被配置成应用基于积分的仲裁或基于优先级类别的仲裁。虽然任何仲裁器205可应用任一方案,但在一些方面,拓扑中仲裁器205的位置帮助其使一个方案优于另一个。举例来说,对于拓扑中心的仲裁器205(或路由器103),可能更有利的是配置仲裁器205以应用优先级类别方案。类似地,对于邻近端点(例如计算元件101)定位的仲裁器205(或路由器103),可能更有利的是应用优先级类别方案。作为另一实例,基于积分的方案可能更适合于中间仲裁器205,所述中间仲裁器沿端点与拓扑中心之间的路径定位。然而,如先前所指示,给定路由器103中的一些仲裁器205可能应用积分方案,而路由器103中的其它仲裁器可能应用优先级类别方案。
如果电流仲裁器205被配置成基于积分的仲裁器,那么方法进行到步骤640,其中电流仲裁器205被配置成比较仲裁器205的输入端口中每一包中的积分数目的指示。电流仲裁器205进一步被配置成服务给定循环中具有最高积分数目的包。在至少一个方面中,仲裁器205的仲裁逻辑212被配置成执行积分的比较和服务具有最高积分数目的包的输入端口。仲裁逻辑212可进一步被配置成识别用于互连件的适当维度的积分。举例来说,如果电流仲裁器205控制对互连件的y维度的存取,那么仲裁逻辑212可以识别包中的y维度积分。
如果电流仲裁器205是基于积分的仲裁器,那么方法进行到步骤650,其中电流仲裁器205被配置成任选地改变由仲裁器205服务的包的积分数目。举例来说,电流仲裁器205可以使包的积分数目增加或减少预定义积分数目。预定义积分数目可以基于拓扑中电流仲裁器205的复杂度和/或位置。预定义积分数目还可以基于由电流仲裁器205控制的互连件的维度。仲裁逻辑212(和/或仲裁管理器204)可被配置成使积分减少或增加预定义积分数目,且一旦积分已经改变,储存包中的经更新积分数目的指示。在用于各维度的积分指定在包中的方面中,仲裁逻辑212可以进一步更新适当维度的积分。类似地,仲裁器205可被配置成在转送包之前不修改积分数目。如先前所指示,在改变包的积分数目中,仲裁器205可以应用算法来重新计算一或多个维度中包的新积分数目,且储存包中积分的经更新数目。一旦积分数目已任选地改变,则方法进行到步骤670。
返回到步骤630,如果电流仲裁器205是基于优先级类别的仲裁器,那么方法进行到步骤660,其中电流仲裁器205可被配置成比较仲裁器205的各输入端口中包的优先级类别的指示。仲裁器205可进一步被配置成服务给定循环中具有最高优先级类别的包。在至少一个方面中,仲裁器205的仲裁逻辑212被配置成基于优先级类别的比较执行仲裁操作,所述仲裁器205服务具有最高优先级类别的包。在包标记有用于互连件的各维度的优先级类别的指示的方面中,仲裁逻辑212被配置成比较对应于由电流仲裁器205控制的互连件的维度的优先级类别。在步骤665处,电流仲裁器205可被配置成任选地改变所服务数据包的优先级类别。举例来说,仲裁器205可应用算法来计算所服务数据包的经更新优先级类别。方法接着进行到步骤670。
在步骤670处,电流仲裁器205的仲裁逻辑212被配置成在包的优先级之间的平局(例如积分的数目或优先级类别)的情况下执行公平仲裁。在步骤680处,如果更多仲裁器保留在拓扑中,那么方法返回到步骤610。否则,如果没有更多仲裁器保留,那么方法600结束。
图7是根据一个方面的说明对应于处理总线事务的步骤350的方法700的流程图。通常,方法700的步骤描绘由作为总线事务的一部分的SoC组件执行的一系列操作。如所展示,方法700在步骤710处开始,其中源计算元件产生定向总线互连件的第一包。第一包可对应于总线事务的特定阶段。接着接口101可从源接收第一包。在步骤720处,总线104的接口101的优先级管理器201可参考对应于总线事务的阶段的查询表202,且将一或多个优先级指示***到第一包中。举例来说,优先级管理器201可以识别第一包中指定的目的地,且参考使用目的地作为指数的适当的查询表202。接着优先级管理器201可以识别查询表202中目的地的对应入口中指定的多个积分和/或优先级类别。接着优先级管理器201可以将积分数目和/或优先级类别的指示***到第一包中。在至少一个方面中,优先级管理器201可以将用于总线互连件的各维度的优先级指示***到第一包中。在至少一个方面中,用于各维度的优先级指示可包含用于互连件的至少一个维度的积分,及用于互连件的至少一个其它维度的优先级类别。
在步骤730处,对安置在第一包的源计算元件与目的地计算元件之间的各仲裁器205(或路由器)执行包含步骤740到步骤790的循环。在步骤740处,电流仲裁器在电流仲裁器205的输入端口中接收包含第一数据包的数据包。在步骤750处,仲裁管理器204可以视具体情况任选地将积分转换成优先级类别或将优先级类别转换成积分,来确保第一包包含可由电流仲裁器用作仲裁操作的一部分的优先级指示。
通常,包中的每一个可以定向电流仲裁器205的相应输出端口。因此,电流仲裁器205必须执行仲裁操作来服务包且授予包对输出端口每循环一包的存取。仲裁操作基于电流仲裁器的类型(基于积分或基于优先级类别)。如果电流仲裁器205是基于优先级类别的仲裁器,那么方法进行到步骤760,其中电流仲裁器205基于各包中指定的优先级类别的比较使用最高优先级服务包直到服务第一包,其授予第一包对电流仲裁器205的输出端口的存取。在至少一个方面中,仲裁器205的仲裁逻辑212通过比较各包中指定的优先级类别执行仲裁操作。接着仲裁逻辑212可以确定哪个包具有最高优先级类别,且授予具有最高优先级类别的包对输出端口的存取。在步骤765处,电流仲裁器205可以任选地修改第一包的优先级类别。举例来说,电流仲裁器205可以任选地增加或减低电流包的优先级类别。接着方法可进行到步骤790。
返回到步骤750,如果电流仲裁器是基于积分的,那么方法进行到步骤770,其中电流仲裁器205基于包中积分数目的比较使用最高优先级服务包直到服务第一包。在至少一个方面中,仲裁器205的仲裁逻辑212通过比较各包中指定的积分数目执行仲裁操作。接着仲裁逻辑212可以确定哪个包具有最高积分数目,且授予具有最高积分数目的包对输出端口的存取。在步骤780处,基于积分的仲裁器205可使第一包减少预定义积分数目。从第一包减少的积分数目可以是特定于电流仲裁器205的静态积分数目。另外,电流仲裁器205可以重新计算电流包的积分数目。举例来说,如果包具有零积分(预减少或后减少),那么电流仲裁器可以在转送包之前基于到目的地的距离重新计算包的多个积分。电流仲裁器205还可以在总线104上转送包之前在第一包中储存经更新积分数目(减少、不变或重新计算)的指示。在步骤790处,如果在下一仲裁器处接收到第一包,那么方法返回到步骤730。如果没有更多仲裁器保留在源与目的地之间,那么在步骤795处,在其目的地处接收到第一包。
图8是根据一个方面的说明集成***芯片(SoC)100的计算装置801的方块图,所述***芯片具有配置成提供服务质量的总线互连件104。图1到图7中所描绘的所有装置和方法可为包含在计算装置801中或由其执行。计算装置801还可以经由网络830连接到其它计算装置。一般来说,网络830可以是电信网络和/或广域网(WAN)。在一特定方面中,网络830是因特网。通常,计算装置801可以是包含执行多级仲裁和应用服务质量的总线互连件的任何装置,包含但不限于,服务器、台式电脑、笔记本电脑、平板电脑和智能电话。
计算装置801通常包含SOC 100,其包含经由总线104连接到存储器808的处理器804、网络接口装置818、存储装置809、输入装置822和输出装置824。计算装置801通常处于操作***(未展示)的控制下。可以使用支持本文所公开的功能的任何操作***。包含处理器804以成为单个CPU、多个CPU、具有多个处理核心的单个CPU和类似物的代表。网络接口装置818可以是允许计算装置801经由网络830与其它计算装置连通的任何类型的网络通信装置。
存储装置809可以是永久性存储装置。尽管存储装置809展示为单个单元,但存储装置809可以是固定存储装置和/或可装卸存储装置的组合,如固定光盘驱动器、固态驱动器、SAN存储装置、NAS存储装置、可装卸存储卡或光学存储装置。存储器808和存储装置809可以是跨越多个主存储装置装置和辅助存储装置装置的一个虚拟地址空间的部分。
输入装置822可以是将输入提供到计算装置801的任何装置。举例来说,可以使用键盘和/或鼠标。输出装置824可以是将输出提供到计算装置801的用户的任何装置。举例来说,输出装置824可以是任何常规显示器屏幕或扬声器的集合。尽管从输入装置822分别展示,但可以组合输出装置824和输入装置822。举例来说,可以使用具有集成触摸屏的显示器屏幕。
如所展示,计算装置801包含多个接口102和路由器103,在上文更详细地描述。通常,接口102将计算元件(如处理器804、存储器806、存储装置808、网络接口818、输入装置822和输出装置824)连接到总线104,且可以使用优先级指示(例如积分和/或优先级类别)标记由计算元件产生的包。路由器103通常被配置成通过提供被配置成比较各包中优先级指示的仲裁器205通过由计算元件产生的包控制对总线104的存取。
有利的是,本文所公开的方面将服务质量提供到在如***芯片(SoC)的集成电路中实施多级仲裁的总线互连件。通常,基于到包的目的地的距离,将优先级类别和/或积分分配给源处的包。有利的是,本文所公开的方面提供分配用于总线互连件的各维度的个别优先级类别和/或积分的能力。此外,源计算元件可包含用于总线事务的各阶段的不同查询表。有利的是,控制对总线互连件的存取的仲裁器可以应用任一方案,因为本文所公开的方面提供在沿包行进的路径的方案之间交换的能力。
已经描述了多个方面。然而,可以对这些方面进行各种修改,且本文提出的原理也可应用到其它方面。此类方法的各种任务可被实施为可由一或多个逻辑元件阵列(如微处理器、嵌入式控制器或IP核心)执行的指令集合。
上文所描述的方法的各种操作可通过能够执行所述操作的任何合适的装置执行,如处理器、固件、专用集成电路(ASIC)、栅极逻辑/寄存器、存储器控制器或高速缓冲存储器控制器。通常,图中所说明的任何操作可以由能够执行所述操作的对应功能装置执行。
前文所公开的装置和功能可以设计和配置到存储在计算机可读媒体上的计算机文件(例如RTL、GDSII、GERBER等)中。一些或所有这些文件可提供给基于此类文件制造装置的制造操作者。所得产品包含接着切割成半导体裸片且封装到半导体芯片中的半导体晶片。一些或所有这类文件可提供给制造操作者,其使用设计数据的配置制造设备以制造本文所述的装置。由计算机文件形成的所得产品包含半导体晶片,其接着切割成半导体裸片(例如集成电路101)且进行封装,且可进一步整合到产品中,包含但不限于,移动电话、智能电话、笔记本电脑、上网本、平板电脑、超级本、台式电脑、数字视频记录器、机顶盒和使用集成电路的任何其它装置。
在一个方面中,计算机文件形成包含电路的设计结构,所述电路在上文描述且以物理设计布局图、示意图、硬件-描述语言(例如Verilog、VHDL等)形式展示在图中。举例来说,设计结构可以是文本文件或如上文所描述的电路的图形表示且展示在图中。设计程序优选地将下文所描述的电路合成(或转译)成网表,其中网表例如是电线、晶体管、逻辑栅极、控制电路、I/O、模型等的列表,其描述到其它元件的连接和集成电路设计中的电路,且记录在机器可读媒体中的至少一个上。举例来说,媒体可以是存储媒体,如CD、压缩闪存、其它闪存器或硬盘驱动器。另一方面,本文所描述的硬件、电路和方法可配置到计算机文件中,所述计算机文件模拟在由处理器执行时上文所描述的且在图中所展示的电路的功能。这些计算机文件可以用于电路***模拟工具、示意图编辑器或其它软件应用。
本文所公开的方面的实施还可以有形地体现(例如,如本文中所列的一或多个计算机可读存储媒体的有形的、计算机可读特征)为一或多个指令集合,所述一或多个指令集合可由包含逻辑元件阵列的机器(例如处理器、微处理器、微控制器或其它有限状态机)执行。术语“计算机可读媒体”可包含可存储或传送信息的任何媒体,包含易失性、非易失性、可装卸式和非可装卸式存储媒体。计算机可读媒体的实例包含电子电路、半导体存储器装置、ROM、闪存器、可擦除ROM(EROM)、软盘或其它磁性存储装置、CD-ROM/DVD或其它光学存储装置、硬盘或可用来存储所要信息的任何其它媒体、光纤媒体、射频(RF)链路或可用来携载所要信息且可存取的任何其它媒体。计算机数据信号可包含可通过发射媒体传播的任何信号,所述发射媒体例如电子网络信道、光纤、空气、电磁、RF链路等。可经由例如因特网或企业内部网等计算机网络下载代码段。在任何情况下,不应将本公开的范围解释为由这些方面限制。
提供对所公开方面的先前描述,以使得所属领域的技术人员能够制造或使用所公开方面。对这些方面的各种修改对于所属领域的技术人员将易于显而易见,且在不脱离本公开的范围的情况下,本文中所定义的原理可应用于其它方面。因此,本公开并不意图限于本文中所展示的方面,而应被赋予与如通过所附权利要求书界定的原理及新颖特征一致的可能的最广范围。
Claims (43)
1.一种集成电路,其包括:
第一仲裁器,其用于控制对总线互连件的存取,所述第一仲裁器被配置成:
在第一输入端口处接收具有第一优先级的第一包;
接收具有第二优先级的第二包,其中所述第一优先级和第二优先级是基于到所述第一包和第二包的对应目的地的距离;以及
在确定所述第一优先级相较所述第二优先级为更高的相对优先级之后转送所述第一包。
2.根据权利要求1所述的集成电路,其中:
所述第一优先级包括第一积分数目;
在所述第一仲裁器的第二输入端口处接收所述第二包;
所述第二优先级包括第二积分数目;以及
所述第一仲裁器被配置成基于所述第一积分数目与第二积分数目的比较来确定所述第一包相较所述第二包具有更高的相对优先级。
3.根据权利要求2所述的集成电路,其中所述第一仲裁器进一步被配置成:
使所述第一包的所述第一积分数目减少预定义的积分数目;以及
在转送所述第一包之前将所述第一积分数目的指示存储在所述第一包中。
4.根据权利要求2所述的集成电路,其进一步包括:
源计算元件,其被配置成产生所述第一包;以及
接口,其将所述源计算元件连接到所述总线互连件,其中所述接口包括优先级管理器,所述优先级管理器被配置成:
识别存储于所述接口中的查询表中的所述第一积分数目,其中所述第一积分数目是基于以下中的至少一个:(i)从所述源计算元件到所述第一包的目的地的距离,(ii)所述总线互连件的带宽,以及(iii)所述第一包从所述源计算元件行进到所述目的地所需的时间;以及
将所述计算的第一积分数目的指示***所述第一包中。
5.根据权利要求2所述的集成电路,其进一步包括仲裁管理器,所述仲裁管理器被配置成:
基于所述第一积分数目计算所述第一包的第一优先级类别;以及
基于所述第二积分数目计算所述第二包的第二优先级类别,
其中所述第一仲裁器被配置成基于所述第一优先级类别和第二优先级类别的比较来进行所述确定。
6.根据权利要求1所述的集成电路,其中:
所述第一优先级包括第一优先级类别;
所述第二优先级包括第二优先级类别;以及
所述第一仲裁器被配置成基于所述第一优先级类别与第二优先级类别的比较来确定所述第一包相较所述第二包具有更高的相对优先级。
7.根据权利要求6所述的集成电路,其进一步包括:
源计算元件,其被配置成产生所述第一包,其中所述第一包指定:(i)所述源计算元件作为所述第一包的源;以及(ii)所述集成电路的多个计算元件的第一目的地计算元件作为所述第一包的目的地;以及
接口,其将所述源计算元件连接到所述总线互连件,其中所述接口包括优先级管理器,所述优先级管理器被配置成:
识别所述接口的路由表中的所述第一优先级类别,其中基于从所述第一源计算元件到所述第一目的地计算元件的距离来定义所述第一优先级类别;以及
将所述第一优先级类别的指示***所述第一包中。
8.根据权利要求7所述的集成电路,其中所述接口集成在所述源计算元件中,其中所述第一优先级类别是基于从所述第一源计算元件到所述第一目的地计算元件的距离,其中所述第二优先级类别是基于从所述多个计算元件的第二源计算元件到第二目的地计算元件的距离。
9.根据权利要求8所述的集成电路,其中从所述第一源计算元件到所述第一目的地计算元件的所述距离是基于以下中的至少一个:(i)设置在所述第一源计算元件与所述第一目的地计算元件之间的多个仲裁器的仲裁器的数目,(ii)所述第一包从所述第一源计算元件行进到所述第一目的地计算元件所需的周期的数目,以及(iii)所述第一包从所述第一源计算元件行进到所述第一目的地计算元件所需的时间的量。
10.根据权利要求6所述的集成电路,其进一步包括仲裁管理器,所述仲裁管理器被配置成:
基于所述第一优先级类别计算所述第一包的第一积分数目;以及
基于所述第二优先级类别计算所述第二包的第二积分数目,
其中所述第一仲裁器被配置成基于所述第一积分数目与第二积分数目的比较来确定所述第一包相较所述第二包具有更高的相对优先级。
11.一种方法,其包括:
在配置成控制对总线互连件的存取的第一仲裁器处接收具有第一优先级的第一包;
通过所述第一仲裁器接收具有第二优先级的第二包,其中所述第一优先级和第二优先级是基于到所述第一包和第二包的对应目的地的距离;以及
在确定所述第一优先级是相较所述第二优先级的更高的相对优先级之后,通过所述第一仲裁器转送所述第一包。
12.根据权利要求11所述的方法,其中:
所述第一优先级包括第一积分数目;
在所述第一仲裁器的第二输入端口处接收所述第二包;
所述第二优先级包括第二积分数目;以及
所述第一仲裁器被配置成基于所述第一积分数目与第二积分数目的比较来确定所述第一包相较所述第二包具有更高的相对优先级。
13.根据权利要求12所述的方法,其进一步包括:
通过所述第一仲裁器使所述第一包的所述第一积分数目减少预定义积分数目;以及
在转送所述第一包之前通过所述第一仲裁器将所述第一积分数目的指示存储在所述第一包中。
14.根据权利要求12所述的方法,其中源计算元件产生所述第一包,其中接口将所述源计算元件连接到所述总线互连件,其中所述接口被配置成执行包括以下的操作:
识别存储于所述接口中的查询表中的所述第一积分数目,其中所述第一积分数目是基于以下中的至少一个:(i)从所述源计算元件到所述第一包的目的地的距离,(ii)所述总线互连件的带宽,以及(iii)所述第一包从所述源计算元件行进到所述目的地所需的时间;以及
将所述计算的第一积分数目的指示***所述第一包中。
15.根据权利要求12所述的方法,其进一步包括:
基于所述第一积分数目计算所述第一包的第一优先级类别;以及
基于所述第二积分数目计算所述第二包的第二优先级类别,
其中所述第一仲裁器被配置成基于所述第一优先级类别和第二优先级类别的比较来进行所述确定。
16.根据权利要求11所述的方法,其中:
所述第一优先级包括第一优先级类别;
所述第二优先级包括第二优先级类别;以及
所述第一仲裁器被配置成基于所述第一优先级类别与第二优先级类别的比较来确定所述第一包相较所述第二包具有更高的相对优先级。
17.根据权利要求16所述的方法,其中源计算元件产生所述第一包,其中接口将所述源计算元件连接到所述总线互连件,其中所述接口被配置成执行包括以下的操作:
识别所述接口的路由表中的所述第一优先级类别,其中基于从所述第一源计算元件到第一目的地计算元件的距离来定义所述第一优先级类别;以及
将所述第一优先级类别的指示***所述第一包中。
18.根据权利要求17所述的方法,其中所述接口集成在所述源计算元件中,其中所述第一优先级类别是基于从所述第一源计算元件到所述第一目的地计算元件的距离,
其中所述第二优先级是基于从所述多个计算元件的第二源计算元件到第二目的地计算元件的距离。
19.根据权利要求18所述的方法,其中从所述第一源计算元件到所述第一目的地计算元件的所述距离是基于以下中的至少一个:(i)设置在所述第一源计算元件与所述第一目的地计算元件之间的多个仲裁器的仲裁器的数目,(ii)所述第一包从所述第一源计算元件行进到所述第一目的地计算元件所需的周期的数目,以及(iii)所述第一包从所述第一源计算元件行进到所述第一目的地计算元件所需的时间的量。
20.根据权利要求16所述的方法,其进一步包括:
基于所述第一积分数目计算所述第一包的第一优先级类别;以及
基于所述第二积分数目计算所述第二包的第二优先级类别,
其中所述第一仲裁器被配置成基于所述第一优先级类别和第二优先级类别的比较来进行所述确定。
21.一种集成电路,其包括:
第一计算元件,其被配置成产生第一包,所述第一包指定所述第一计算元件作为源以及第二计算元件作为目的地;以及
第一接口,其耦合到所述第一计算元件且被配置成:
在所述第一接口的路由表中识别所述第一包的优先级,其中所述优先级是基于从所述第一计算元件到所述第二计算元件的距离;以及
将所述优先级的指示***所述第一包中。
22.根据权利要求21所述的集成电路,其中所述优先级的所述指示包括多个优先级类别中的第一优先级类别,其中所述第一优先级类别是基于从所述第一计算元件到所述第二计算元件的所述距离,其中所述第一接口将所述第一计算元件连接到总线互连件,其中所述第一接口集成在所述第一计算元件中。
23.根据权利要求22所述的集成电路,其进一步包括多个仲裁器,所述仲裁器被配置成通过所述计算元件控制对所述总线互连件的存取,其中从所述第一计算元件到所述第二计算元件的所述距离是基于以下中的至少一个:(i)设置在所述第一计算元件与所述第二计算元件之间的所述多个仲裁器的仲裁器的数目,(ii)所述第一包从所述第一计算元件行进到所述第二计算元件所需的周期的数目,以及(iii)所述第一包从所述第一计算元件行进到所述第二计算元件所需的时间的量。
24.根据权利要求23所述的集成电路,其中所述多个仲裁器中的第一仲裁器被配置成:
在第一输入端口处接收所述第一包;
在第二输入端口处接收第二包,其中所述第二包指定第二优先级类别;以及
在确定所述第一优先级类别相较所述第二优先级类别是更高的优先级之后经由所述第一仲裁器的输出端口转送所述第一包。
25.根据权利要求24所述的集成电路,其进一步包括仲裁管理器,所述仲裁管理器被配置成:
基于所述第一优先级类别计算所述第一包的第一积分数目;以及
基于所述第二优先级类别计算所述第二包的第二积分数目。
26.根据权利要求25所述的集成电路,其中所述多个仲裁器中的第二仲裁器被配置成:
通过第一输入端口接收所述第一包;
通过第二输入端口接收所述第二包;以及
在基于所述第一积分数目与第二积分数目的比较确定所述第一包相较所述第二包具有更高的相对优先级之后经由输出端口转送所述第一包。
27.根据权利要求21所述的集成电路,其中所述优先级的所述指示包括第一积分数目,
其中所述第一积分数目是基于以下中的至少一个:(i)从所述第一计算元件到所述第二计算元件的所述距离,(ii)所述总线互连件的带宽,以及(iii)所述第一包从所述第一计算元件行进到所述第二计算元件所需的时间,其中所述第一接口将所述第一计算元件连接到总线互连件,其中所述第一接口集成在所述第一计算元件中。
28.根据权利要求27所述的集成电路,其进一步包括多个仲裁器,所述仲裁器被配置成通过所述多个计算元件控制对所述总线互连件的存取,其中所述多个仲裁器中的第一仲裁器被配置成:
在第一输入端口处接收所述第一包;
在第二输入端口处接收第二包,其中所述第二包指定第二积分数目;以及
基于所述第一积分数目与第二积分数目的比较经由所述第一仲裁器的输出端口转送所述第一包。
29.根据权利要求28所述的集成电路,其进一步包括逻辑,所述逻辑被配置成:
使所述第一包的所述第一积分数目减少预定义的积分数目;以及
在将所述第一包转送到所述第一目的地之前将所述第一积分数目的指示存储在所述第一包中。
30.根据权利要求29所述的集成电路,其进一步包括逻辑,所述逻辑被配置成:
基于所述第一积分数目计算所述第一包的第一优先级类别;以及
基于所述第二积分数目计算所述第二包的第二优先级类别。
31.根据权利要求30所述的集成电路,其中所述多个仲裁器中的第二仲裁器被配置成:
通过第一输入端口接收所述第一包;
通过第二输入端口接收所述第二包;以及
在基于所述第一优先级类别和第二优先级类别确定所述第一包相较所述第二包具有更高的相对优先级之后经由所述第二仲裁器的输出端口转送所述第一包。
32.一种方法,其包括:
通过第一计算元件产生第一包,所述第一包指定所述第一计算元件作为源以及第二计算元件作为目的地;以及
在耦合到所述第一计算元件的第一接口的路由表中识别所述第一包的优先级,其中所述优先级是基于从所述第一计算元件到所述第二计算元件的距离;以及
通过所述第一接口将所述优先级的指示***所述第一包中。
33.根据权利要求32所述的方法,其中所述优先级的所述指示包括多个优先级类别中的第一优先级类别,其中所述第一优先级类别是基于从所述第一计算元件到所述第二计算元件的所述距离,其中所述第一接口将所述第一计算元件连接到总线互连件,其中所述第一接口集成在所述第一计算元件中。
34.根据权利要求33所述的方法,其中多个仲裁器被配置成通过所述计算元件控制对所述总线互连件的存取,其中从所述第一计算元件到所述第二计算元件的所述距离是基于以下中的至少一个:(i)设置在所述第一计算元件与所述第二计算元件之间的多个仲裁器的仲裁器的数目,(ii)所述第一包从所述第一计算元件行进到所述第二计算元件所需的周期的数目,以及(iii)所述第一包从所述第一计算元件行进到所述第二计算元件所需的时间的量。
35.根据权利要求34所述的方法,其进一步包括:
在所述多个仲裁器中的第一仲裁器的第一输入端口处接收所述第一包;
在所述第一仲裁器的第二输入端口处接收第二包,其中所述第二包指定第二优先级类别;以及
在确定所述第一优先级类别相较所述第二优先级类别是更高的优先级之后经由所述第一仲裁器的输出端口转送所述第一包。
36.根据权利要求35所述的方法,其进一步包括:
基于所述第一优先级类别计算所述第一包的第一积分数目;以及
基于所述第二优先级类别计算所述第二包的第二积分数目。
37.根据权利要求36所述的方法,其进一步包括:
通过所述多个仲裁器中的第二仲裁器的第一输入端口接收所述第一包;
通过所述第二仲裁器的第二输入端口接收所述第二包;以及
在基于所述第一积分数目和第二积分数目的比较确定所述第一包相较所述第二包具有更高的相对优先级之后经由所述第二仲裁器的输出端口转送所述第一包。
38.根据权利要求32所述的方法,其中所述优先级的所述指示包括第一积分数目,其中所述第一积分数目是基于以下中的至少一个:(i)从所述第一计算元件到所述第二计算元件的所述距离,(ii)所述总线互连件的带宽,以及(iii)所述第一包从所述第一计算元件行进到所述第二计算元件所需的时间,其中所述第一接口将所述第一计算元件连接到总线互连件,其中所述第一接口集成在所述第一计算元件中。
39.根据权利要求38所述的方法,其中多个仲裁器被配置成通过所述计算元件控制对所述总线互连件的存取,所述方法进一步包括:
在所述多个仲裁器中的第一仲裁器的第一输入端口处接收所述第一包;
在所述第一仲裁器的第二输入端口处接收第二包,其中所述第二包指定第二积分数目;以及
基于所述第一积分数目与第二积分数目的比较经由所述第一仲裁器的输出端口转送所述第一包。
40.根据权利要求39所述的方法,其进一步包括:
使所述第一包的所述第一积分数目减少预定义的积分数目;以及
在将所述第一包转送到所述第一目的地之前将所述第一积分数目的指示存储在所述第一包中。
41.根据权利要求40所述的方法,其进一步包括:
基于所述第一积分数目计算所述第一包的第一优先级类别;
基于所述第二积分数目计算所述第二包的第二优先级类别;
通过所述多个仲裁器中的第二仲裁器的第一输入端口接收所述第一包;
通过所述第二仲裁器的第二输入端口接收所述第二包;以及
在基于所述第一优先级类别和第二优先级类别的比较确定所述第一包相较所述第二包具有更高的相对优先级之后经由所述第二仲裁器的输出端口转送所述第一包。
42.一种设备,其包括:
用于接收具有第一优先级的第一包的装置;
用于接收具有第二优先级的第二包的装置,其中所述第一优先级和第二优先级是基于到所述第一包和第二包的对应目的地的距离;以及
用于在确定所述第一优先级相较所述第二优先级为更高的相对优先级之后转送所述第一包的装置。
43.一种设备,其包括:
用于产生第一包的装置,所述第一包指定经由总线互连件连接的多个计算元件中的第一计算元件作为源以及所述多个计算元件中的第二计算元件作为目的地;
用于识别所述第一包的优先级的装置,其中所述优先级是基于从所述第一计算元件到所述第二计算元件的距离;以及
用于将所述优先级的指示***所述第一包中的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/853,066 US20170075838A1 (en) | 2015-09-14 | 2015-09-14 | Quality of service in interconnects with multi-stage arbitration |
US14/853,066 | 2015-09-14 | ||
PCT/US2016/044084 WO2017048368A1 (en) | 2015-09-14 | 2016-07-26 | Quality of service in interconnects with multi-stage arbitration |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108027789A true CN108027789A (zh) | 2018-05-11 |
Family
ID=56567720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680052399.5A Pending CN108027789A (zh) | 2015-09-14 | 2016-07-26 | 具有多级仲裁的互连件的服务质量 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170075838A1 (zh) |
CN (1) | CN108027789A (zh) |
WO (1) | WO2017048368A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037650A (zh) * | 2019-12-09 | 2021-06-25 | 北京灵汐科技有限公司 | 一种数据处理的方法、装置和电子设备 |
CN113848455A (zh) * | 2021-09-24 | 2021-12-28 | 成都华微电子科技有限公司 | Fpga内部互联线延时测试方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113589775A (zh) * | 2015-09-21 | 2021-11-02 | 西门子股份公司 | 针对处理对象的处理步骤的开启 |
US10009291B1 (en) * | 2015-12-21 | 2018-06-26 | Amazon Technologies, Inc. | Programmable switching fabric for dynamic path selection |
US10341259B1 (en) * | 2016-05-31 | 2019-07-02 | Amazon Technologies, Inc. | Packet forwarding using programmable feature prioritization |
US11064019B2 (en) * | 2016-09-14 | 2021-07-13 | Advanced Micro Devices, Inc. | Dynamic configuration of inter-chip and on-chip networks in cloud computing system |
US10541934B1 (en) * | 2017-12-11 | 2020-01-21 | Xilinx, Inc . | Systems and methods for frame buffering and arbitration in a network |
JP2019113917A (ja) * | 2017-12-21 | 2019-07-11 | ルネサスエレクトロニクス株式会社 | データ処理装置、及びデータ処理装置の制御方法 |
DE102018105007B4 (de) * | 2018-03-05 | 2019-10-17 | Volkswagen Aktiengesellschaft | Verfahren zur Übertragung von Daten über einen Kommunikationskanal, entsprechend ausgelegte Vorrichtung und Kommunikationsschnittstelle sowie entsprechend ausgelegtes Computerprogramm |
US10893005B2 (en) * | 2018-09-17 | 2021-01-12 | Xilinx, Inc. | Partial reconfiguration for Network-on-Chip (NoC) |
US11055243B1 (en) * | 2020-04-19 | 2021-07-06 | Nuvoton Technology Corporation | Hierarchical bandwidth allocation bus arbiter |
US11386031B2 (en) * | 2020-06-05 | 2022-07-12 | Xilinx, Inc. | Disaggregated switch control path with direct-attached dispatch |
US11949595B2 (en) * | 2020-06-26 | 2024-04-02 | Intel Corporation | Reflection routing as a framework for adaptive modular load balancing for multi-hierarchy network on chips |
US11720404B2 (en) * | 2020-07-16 | 2023-08-08 | Samsung Electronics Co., Ltd. | Systems and methods for arbitrating access to a shared resource |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010023465A1 (en) * | 2000-03-03 | 2001-09-20 | Terumasa Haneda | Packet transmitting/ receiving method and apparatus for computer system |
US20080016254A1 (en) * | 2006-07-11 | 2008-01-17 | Ati Technologies, Inc. | Memory controller with ring bus for interconnecting memory clients to memory devices |
CN101930417A (zh) * | 2010-08-13 | 2010-12-29 | 北京飞利信科技股份有限公司 | 用于基于串行数据总线的流媒体传输***终端设备中的仲裁器 |
CN102148762A (zh) * | 2011-04-28 | 2011-08-10 | 合肥工业大学 | 一种用于CAN-FlexRay网关的混合调度方法 |
CN103019962A (zh) * | 2012-12-21 | 2013-04-03 | 华为技术有限公司 | 数据缓存处理方法、装置以及*** |
US20150188829A1 (en) * | 2013-12-26 | 2015-07-02 | Sudhir Satpathy | Priority-based routing |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218676A (en) * | 1990-01-08 | 1993-06-08 | The University Of Rochester | Dynamic routing system for a multinode communications network |
JPH05191455A (ja) * | 1992-01-10 | 1993-07-30 | Mitsubishi Electric Corp | パケット交換装置 |
US8867533B2 (en) * | 2013-01-08 | 2014-10-21 | Apple Inc. | Multi-tier switch interface unit arbiter |
US9178832B2 (en) * | 2013-07-11 | 2015-11-03 | International Business Machines Corporation | Queue credit management |
US9699079B2 (en) * | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
-
2015
- 2015-09-14 US US14/853,066 patent/US20170075838A1/en not_active Abandoned
-
2016
- 2016-07-26 CN CN201680052399.5A patent/CN108027789A/zh active Pending
- 2016-07-26 WO PCT/US2016/044084 patent/WO2017048368A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010023465A1 (en) * | 2000-03-03 | 2001-09-20 | Terumasa Haneda | Packet transmitting/ receiving method and apparatus for computer system |
US20080016254A1 (en) * | 2006-07-11 | 2008-01-17 | Ati Technologies, Inc. | Memory controller with ring bus for interconnecting memory clients to memory devices |
CN101930417A (zh) * | 2010-08-13 | 2010-12-29 | 北京飞利信科技股份有限公司 | 用于基于串行数据总线的流媒体传输***终端设备中的仲裁器 |
CN102148762A (zh) * | 2011-04-28 | 2011-08-10 | 合肥工业大学 | 一种用于CAN-FlexRay网关的混合调度方法 |
CN103019962A (zh) * | 2012-12-21 | 2013-04-03 | 华为技术有限公司 | 数据缓存处理方法、装置以及*** |
US20150188829A1 (en) * | 2013-12-26 | 2015-07-02 | Sudhir Satpathy | Priority-based routing |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113037650A (zh) * | 2019-12-09 | 2021-06-25 | 北京灵汐科技有限公司 | 一种数据处理的方法、装置和电子设备 |
CN113037650B (zh) * | 2019-12-09 | 2022-11-18 | 北京灵汐科技有限公司 | 一种数据处理的方法、装置和电子设备 |
CN113848455A (zh) * | 2021-09-24 | 2021-12-28 | 成都华微电子科技有限公司 | Fpga内部互联线延时测试方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2017048368A1 (en) | 2017-03-23 |
US20170075838A1 (en) | 2017-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027789A (zh) | 具有多级仲裁的互连件的服务质量 | |
US9563735B1 (en) | Automatic pipelining of NoC channels to meet timing and/or performance | |
US8819611B2 (en) | Asymmetric mesh NoC topologies | |
US9444702B1 (en) | System and method for visualization of NoC performance based on simulation output | |
US10027433B2 (en) | Multiple clock domains in NoC | |
Li et al. | DyXY: a proximity congestion-aware deadlock-free dynamic routing method for network on chip | |
JP6060316B2 (ja) | NoCを構成するための方法及びシステム並びにコンピュータ可読記憶媒体 | |
CN104170334B (zh) | 一种用于管理网络的控制器的配置托管元件的方法及设备 | |
CN108243044B (zh) | 业务部署的方法与装置 | |
US20190266088A1 (en) | Backbone network-on-chip (noc) for field-programmable gate array (fpga) | |
CN105740199B (zh) | 芯片上网络的时序功率估算装置与方法 | |
US20220012177A1 (en) | Application mapping on hardened network-on-chip (noc) of field-programmable gate array (fpga) | |
US20180159786A1 (en) | Interface virtualization and fast path for network on chip | |
CN107104824A (zh) | 一种网络拓扑确定方法和装置 | |
CN105634974B (zh) | 软件定义网络中的路由确定方法和装置 | |
CN104811392A (zh) | 用于处理网络中的资源访问请求的方法和*** | |
CN106503058A (zh) | 一种数据加载方法、终端和计算集群 | |
CN110389711A (zh) | 帮助端点设备实现sr-iov功能的方法、设备和计算机程序产品 | |
CN107070709A (zh) | 一种基于底层numa感知的nfv实现方法 | |
CN103346950B (zh) | 一种机架式无线控制器用户业务板间负载均摊方法及装置 | |
US10419300B2 (en) | Cost management against requirements for the generation of a NoC | |
CN116915708A (zh) | 路由数据包的方法、处理器及可读存储介质 | |
CN107193656B (zh) | 多核***的资源管理方法、终端设备及计算机可读存储介质 | |
CN106209461A (zh) | 一种流量处理方法及装置 | |
US9164794B2 (en) | Hardware prefix reduction circuit |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180511 |
|
WD01 | Invention patent application deemed withdrawn after publication |