CN104583991B - 预订方法、环停止器以及互连装置 - Google Patents
预订方法、环停止器以及互连装置 Download PDFInfo
- Publication number
- CN104583991B CN104583991B CN201380045371.5A CN201380045371A CN104583991B CN 104583991 B CN104583991 B CN 104583991B CN 201380045371 A CN201380045371 A CN 201380045371A CN 104583991 B CN104583991 B CN 104583991B
- Authority
- CN
- China
- Prior art keywords
- microplate
- ring
- notch
- agency
- buffer
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/427—Loop networks with decentralised control
- H04L12/43—Loop networks with decentralised control with synchronous transmission, e.g. time division multiplex [TDM], slotted rings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/08—Intermediate station arrangements, e.g. for branching, for tapping-off
- H04J3/085—Intermediate station arrangements, e.g. for branching, for tapping-off for ring networks, e.g. SDH/SONET rings, self-healing rings, meashed SDH/SONET networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L12/422—Synchronisation for ring networks
-
- 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/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/42—Loop networks
- H04L2012/421—Interconnected ring systems
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Vibration Dampers (AREA)
Abstract
公开了一种槽口预订方法。该槽口预订方法在两个维度中生成槽口预订,以便解决饥饿以及减少通过互连传输的消息回弹。使用该槽口预订方法实现的互连能够被扩展到更大的片上网络实现。
Description
技术领域
本申请涉及无缓冲器互连并且更具体地涉及用于解决这种互连内的饥饿(starvation)和回弹(bounce)的机制。
背景
片上网络架构(也称为芯片上网络架构)正在被设计有大量的代理。传统意义上,这些网络架构具有仿真片外网络,导致不可扩展的复杂设计。
互连(一种网格网络)是简化的设计拓扑,其使得大量的代理能够在片上共存,其中每个代理能够与另一个代理通信。互连由环组合形成,呈现为二维形式,具有嵌入在环的交点处的智能性。
不幸的是,这种互连的设计趋向于相比于位于互连中心的代理更青睐位于互连外围的代理。这种设计缺陷可导致饥饿,其中代理不能通过互连向另一个代理发送消息,以及导致回弹,其中已经在互连内的消息不能到达其目的地代理。
因此,存在对克服现有技术的缺点的解决方案的持续需要。
附图简要说明
当结合附图时,前述方面和本发明的许多伴随优势将变得更加容易认识到,正如通过参照以下详细说明更好地理解到的那样,其中,贯穿各种视图,相同的参考标号指代相同的部件,除非另外指明。
图1是根据某些实施例的槽口(slot)预订方法的简化流程图;
图2是根据某些实施例的支持高达72个代理的6x 6互连的简化图;
图3是根据某些实施例的图2的互连的简化图,示出与一对代理相交并与其耦合的单个水平环和单个垂直环;
图4是根据某些实施例的图2的互连的简化图,示出环停止器的一些元素;
图5是根据某些实施例的由图1的槽口预订方法使用的环停止器的示意图;
图6A-6C是根据某些实施例的示出在图2的互连中外围代理如何比中间代理更被青睐的简化图;
图7是根据某些实施例具有用于存储消息微片(flit)的队列的若干代理的简化图,以便示出队首阻塞现象;
图8是根据某些实施例的由图1的槽口预订方法使用的用于做出槽口预订请求的寄存器;
图9是根据某些实施例的示出在图2的互连中请求代理如何生成槽口预订的简化图;
图10是描绘根据某些实施例的图1的槽口预订方法中的避免互连的水平环中的饥饿的操作的流程图;
图11是描绘根据某些实施例的图1的槽口预订方法中的避免互连的垂直环中的饥饿的操作的流程图;
图12是描绘图1的槽口预订方法中的减少水平环上的回弹的操作的流程图;以及
图13是描绘根据某些实施例的当环槽口到达环停止器时图1的槽口预订方法执行的操作的流程图。
详细描述
根据在此描述的实施例,公开了槽口预订方法。该槽口预订方法允许代理在两个维度上生成槽口预订。该槽口预订方法解决了饥饿并且减少了通过互连传输的消息的回弹。
在以下详细描述中,对附图进行参考,附图说明性地示出在此描述的主题可在其中实践的具体实施例。然而,将理解的是在阅读本公开时,其他实施例将对本领域普通技术人员变得明显。因此,以下详细描述不得被解释为限制性的含义,因为主题的范围由权利要求书限定。
图1是根据某些实施例的槽口预订方法200的简化流程图。槽口预订方法100用在将多个代理连接在一起的互连中。槽口预订方法100被执行以便解决可能在互连中出现的三种现象中的任意一种:水平环中的饥饿(A)、垂直环中的饥饿(B)以及水平环中的回弹(C)。这些现象中的每种现象可致使互连低效地操作,并且通过进行槽口预订解决每种现象,如以下所述。在某些实施例中,使用槽口预订方法100改善互连中的消息处理。
在详细地描述槽口预订方法100之前,介绍互连是合适的。图2是根据某些实施例的二维互连150的简化图。示例互连150是六乘六拓扑,支持高达72个代理的互连。在水平面中呈现了一半的环30(蓝色),同时在垂直面中呈现了一半的环40(绿色)。一半的环30、40在此也分别被称为水平环和垂直环。
布置在环30、40下方的方块20表示代理位置标记,其中每个方块支持两个代理。在图2中,未明确地描绘这些代理,但是使用箭头示出了消息从每个高速缓存代理以及每个核代理传入到互连150及其从互连传出。因此,粉红色箭头32和蓝色箭头34指示消息从核/高速缓存代理传入到互连150,同时青色箭头42和绿色箭头44指示消息从互连传出到核/高速缓存代理。
每个代理由环停止器50(红色)服务,该环停止器位于该代理的水平环30和垂直环40之间的相交处。环停止器50(不应与以下描述的环槽口90混淆)包括互连150的智能性。以下更详细地描述环停止器50。
互连150是环互连设计向二维网格拓扑的扩展。水平30和垂直40环在交点处互连。代理同时连接到水平环30之一和垂直环40之一。
图3是互连150的简化图,示出单个水平环30和单个垂直环40,其中,环停止器50布置在这些环之间。图3中还示出了两个代理,核代理98A和高速缓存代理98B(统称为“代理98”)。两个代理98连接到水平环和垂直环。向水平环30的传入由入口点32(粉红色)和34(蓝色)给出并且从垂直环40的传出由出口点42(青色)和44(绿色)给出。微片200沿水平环30行进。
互连150上的流量是指在两个代理98之间传输消息。这些消息可被作为多个微片传输。微片(流控制数位的简称)是流控制的最小单元。消息通常由多个微片组成。图3中示出了在水平环30上进入互连150的单个微片200。以下更详细地描述总体上槽口预订方法100对互连150上的微片200的处理。
图4是根据某些实施例的互连150的另一个简化流程图。为了处理在代理之间传输的微片200,环停止器50包括水平环停止器60、垂直环停止器60、以及越界缓冲器(TB)66。水平环停止器60处理从一个代理(代理98A或者代理98B)接收的旨在用于互连150上的另一个代理的微片200。垂直环停止器70处理从水平环30接收的微片200并且确保通过垂直环40将这些微片发送至这些代理。布置在水平环停止器60和垂直环停止器70之间的越界缓冲器66提供在这两个环停止器之间传递的微片的缓冲。在其他实施例中,在被传送到水平环之前,从代理98接收的微片200首先遍历垂直环,然后由垂直环停止器70处理。槽口预订方法100不限于具体的环拓扑并且在多种互连环境中操作。
图5是根据某些实施例的在互连150中用红色示出的环停止器50(图2、图3和图4)的详细示意图。环停止器50由图1的槽口预订方法100用于避免在互连150中发生的两种现象,饥饿和回弹。以下更详细描述饥饿和回弹。
环停止器50是用于将微片200从水平环30移动到垂直环40的分站。除图4中描述的水平环停止器60、垂直环停止器70以及越界缓冲器66之外,环停止器50包括高速缓存框(传出)54、核框(传出)52、核框(传入)72以及高速缓存框(传入)74。核代理98A连接到核框52以便将微片200发送到互连150以及连接到核框72以便从互连接收微片。类似地,高速缓存代理98B连接到高速缓存框54以便将微片200发送到互连150以及连接到高速缓存框74以便从互连接收微片。槽口预订方法100被布置在水平和垂直环停止器60、70之间。在某些实施例中,越界缓冲器66具有其自身的缓冲器或队列,越界缓冲器向上/高速缓存66A中的缓冲器96C以及越界缓冲器向下/核66B中的缓冲器96D。
核框52和高速缓存框54在互连150上发起事务。核框52从核代理98A接收微片200并且经由水平环30将微片发送通过互连150。类似地,高速缓存框54从高速缓存代理98B接收微片200并且经由水平环30将微片发送通过互连150。核框52和高速缓存框54通过复用器56A和56B(统称为“复用器56”)连接到水平环30。
核框72和高速缓存框74终结互连150上的事务。核框72和高速缓存框74从垂直环停止器70接收微片200。核框72和高速缓存框74通过复用器86A和86B(统称为“复用器86”)连接到垂直环40。
在水平环30上,给定消息的微片200逆时针或者顺时针地在单个方向上行进。代理98可在逆时针方向发送消息,然后在顺时针方向发送第二消息,其中该方向由传输代理和接收代理之间的最短距离决定。
类似地,跨垂直环40行进的微片200可在逆时针方向或顺时针方向上行进。然而,垂直环40具有在每个时间周期期间改变代理到垂直环的耦合的极性。在第一时间周期期间,核框72连接到在第一方向(例如,逆时针)行进的垂直环40,而高速缓存框74连接到在相反方向(例如,顺时针)行进的垂直环。在下一后续时间周期期间,核框72连接到在相反方向(例如,顺时针)行进的垂直环40,而高速缓存框74连接到在第一方向(例如,逆时针)行进的垂直环。因此,尽管可以在两个方向发送消息,给定消息的微片200在每隔一个时间周期期间在特定的方向上传输。
越界缓冲器66为来自水平环30的微片200提供缓冲并且将微片200移动到垂直环40。在某些实施例中,越界缓冲器66进一步包括越界缓冲器向上/高速缓存66A、越界缓冲器向下/核66B以及选择复用器80A和80B(统称为“选择复用器80”)。选择复用器80选择进入微片200(无论是逆时针还是顺时针)的目的地,核代理或是高速缓存代理。在某些实施例中,在环停止器50内存在越界缓冲器66的多种可能的实现方式,取决于缓冲器组织和连接,其中所期望的吞吐量和实现成本之间存在折中。
在环停止器50内,水平环停止器60包括临时存储跨水平环30行进的微片200的两个锁存器58A和58B(统称为“锁存器58”),每个方向上一个。复用器56选择在每个处理循环从水平环停止器60离开的微片200。
对于复用器56,向继续跨水平环30的微片200给予比要注入到水平环中的微片(通过代理传出队列52/54到达水平环停止器的微片)更高的优先级。因此,在微片200一个时间周期又一个时间周期地跨水平环30行进直至其到达与预期的目的地代理相关联的环停止器的情况下,在处理新进入的微片之前处理该微片。
越界缓冲器66的两个选择复用器80根据微片在垂直环40上的预期目的地过滤微片200。例如,选择复用器80A将向相应的越界缓冲器(96C)发送沿着垂直环40在逆时针方向行进或者目的地为本地高速缓存框的微片200,同时复用器80B向相应的越界缓冲器(96D)发送沿着垂直环在顺时针方向行进或者目的地为本地核框的微片200。
垂直环停止器70包括临时存储跨垂直环40行进的微片200的两个锁存器82A和82B(统称为“锁存器82”)。垂直环停止器70还包括选择行进到达代理98的入口端口72、74的微片200的两个复用器84A和84B(统称为“复用器84”)。垂直环停止器70的复用器86选择在每个处理循环被注入到代理传入队列中的微片200。对于复用器86,向已经沿着垂直环70行进的微片200给予比从越界缓冲器66传输到环的微片更高的优先级。
核框52包括缓冲器96A并且高速缓存框54包括缓冲器96B,用于存储组成消息的微片200。类似地,越界缓冲器向上66A包括缓冲器96C,并且越界缓冲器向下66B包括缓冲器96D。最终,核框72包括缓冲器96E并且高速缓存框74包括缓冲器96F,用于存储所接收的微片200(统称为“缓冲器96”)。这些缓冲器96用于存储以其预期传输顺序组成消息的微片200。
水平环停止器60从水平环30或从代理传出队列52/54接收微片200。如果微片要求尺寸改变或者其已经到达其预期目的地,则微片200被传输通过复用器80并且根据其目的地被存储。越界缓冲器66A存储在第一方向(例如,逆时针)行进的或者预期用于第一类型的代理(例如,高速缓存代理)的微片。越界缓冲器66B存储在第二方向(例如,顺时针)行进的或者预期用于第二类型的代理(例如,核代理)的微片。
在任一种情况下,越界缓冲器66将微片200传输到垂直环停止器70。当水平环30上发生饥饿时(情况A),执行槽口预订方法100。当垂直环40上发生饥饿时(情况B),也可执行槽口预订方法100。最终,当水平环30上发生回弹时,也执行槽口预订方法100。在这些情况中的任一种中,在某些实施例中,通过在适当的环上预订槽口,改善了消息处理吞吐量。
返回图4,传入箭头32和34如此命名是因为其分别从高速缓存和核代理98“传入”水平环30。类似地,传出箭头42和44分别从垂直环70“传出”到高速缓存和核代理98。也在图5中指明了图4的箭头32、34、42和44。相反的是,核框52和高速缓存框54被指示为“传出”,因为来自核和高速缓存代理98的微片离开这些代理并且进入水平环30。
在互连150中,代理98的传出端口52、54连接到水平环停止器60,允许仅需要被水平地路由的流量被通过水平环30注入到互连150。在通过位于源环停止器的越界缓冲器66之后,仅需要被垂直地路由的流量被通过垂直环40注入到互连150。需要水平地然后垂直地路由的流量首先通过水平环30被注入到互连150并且然后被通过位于环停止器50的越界缓冲器66传输到垂直环40。
代理98的传入端口72、74通过垂直环停止器70连接到垂直环40,允许被垂直地路由的流量通过垂直环40离开互连150。每个水平环停止器60还连接到代理98的传入端口。不需要被跨垂直环40路由的流量使用该连接离开互连150。在某些实施例中,向跨垂直环40行进的流量给予比跨水平环30行进的流量更高的优先级。
水平环30和垂直环40实际上是半环,其不同于双向环。在半环中,在每个方向使用单向环,但是每个环停止器连接到环的两个方向(对于水平环30是左、右,对于垂直环40是上、下)。
代理98基于到环上的目的地代理98的最小行进距离选择注入微片200的环的方向。半环上的包绕连接连接两个单向半环(左/右和上/下)以便形成双向环。仅当目的地代理(或者环停止器50,在水平环的情况下)不能接受微片200时使用半环上的包绕连接,从而使得微片停止在环上被回弹。对于互连150,所使用的路由策略首先是水平的,所以微片200被通过环槽口从水平环30上的源代理98路由到目的地列。然后,微片200被路由到垂直环40(如果需要的话)并且然后进行到实际目的地代理98。
尽管互连150的表示可暗示核和高速缓存代理之间的对称性,但在实际情况下,互连150可填充有比高速缓存代理多得多的核代理。无论如何,互连150的设计意在方便任意两个连接代理98之间的通信,不管是其核代理还是高速缓存代理。尽管互连150在本目标中是成功的,本设计的某些方面更青睐于某些代理。回顾图2,四个角方块(每个表示两个代理90)被上色(紫色)。在处理代理之间的消息时,占据这些边界方块20的代理98比位于互连150中心的其他代理更受青睐。
存在每方块(环停止器)连接的两个代理,每个代理具有两个端口(队列),一个被称为用于从互连150接收微片的传入,并且另一个被称为向互连传送微片的传出。为了简化,我们将这些代理之一称为高速缓存(具有相关联的高速缓存传出队列54以及相关联的高速缓存传入队列74)并且另一个代理称为核(具有相关联的核传出队列52以及相关联的核传入队列72)。
图6A-6C各自描绘了根据某些实施例的沿着十二个代理98的单个水平环30。在此相对于水平环30描述的原理类似地应用于垂直环40。水平环30包括十二个环槽口,每个用于一个代理98。环槽口90是每个代理98向互连中的其他代理传输消息所借助的装置。因此,当引用在互连150上在代理98之间传输消息时,应理解的是实际上以微片200的形式传输这些消息。在图6A-6C中,描绘了三个不同的微片,200A、200B和200C(统称为“微片200”)。
假设第一代理(代理1)向其对应的环槽口90插入微片200(橘色),如图6A所示。在下一时间周期内(图6B),微片200A已经移动一个位置,到达与代理2相关联的环槽口90。这妨碍代理2将微片200插入环30。无论如何,代理1能够将第二微片200B插入环30。在下一时间周期内(图6C),微片200A已经再次移动,此时到达与代理3相关联的环槽口90。微片200B也已经移动到与代理2相关联的环槽口90。代理2和代理3都被阻止此时插入微片200。同时,代理1能够将第三微片200C插入环30。
图6A-6C示出微片200如何在每个时间周期期间绕水平环30移动并且在每个代理位置(环停止器90)停止。水平环30在单个方向行进,在这种情况下,顺时针。这些图示出为何第一(外围)代理比连接到环30的后续(中间)代理更受青睐。当第一代理98(代理1)在其对应的环槽口90插入微片200时,在下一时间周期内,第二代理(代理2)被阻止将其自身的微片200提交给环30。因为代理1在互连150的外围或者“队首”,代理1比水平环30上的其他代理更受青睐,并且因此将能够以及时的方式向互连150传送更多的消息。
由于水平环30实际上是两个半环,微片200不行进通过代理6环槽口90,而是将通过适当的环停止器50移动到垂直环40。在图6A-6C中示出的针对代理1的原理可类似地应用于代理7,因为代理7是其对应的半环的外围代理。代理7在第一时间周期内在顺时针方向发送微片200,微片在其环槽口90内接收到。在第二时间周期内,微片200行进到代理8的环槽口90,妨碍代理8插入其自身的微片。因此,如同代理1,由于连互150的配置,代理7比代理8、9等等更受青睐。
返回图2,为了使得由预期的代理98接收微片200,在某些实施例中存在三个步骤。首先,微片200在与传输代理98位于相同行的水平环30上进入互连150。微片200逐环停止器50地跨环行进,直至到达接收代理98所位于的列。接下来,微片200进入布置在水平环30和垂直环40之间的环停止器50(示出为红色),其中该环停止器占据与接收代理98相同的列。在这一点,微片200离开水平环30并且进入垂直环40。再次,微片200逐环停止器50地沿着垂直环40行进,直至到达接收代理98的位置。在这一点,微片200由接收代理98接收。
因此,例如,如果传输代理98在第一行第一列并且接收代理在第三行第三列,微片200将进入互连150在水平环30的第一环停止器50进入环槽口90、在第二环停止器(第二代理)停止、并且在进入环停止器50之前在第三环停止器(第三代理)停止以便传输到垂直环40。在垂直环上,在第一行中的环停止器开始的微片200将在第二行中的环停止器停止,并且在接收代理所位于的第三行中的环停止器停止。在垂直方向的停止的数量取决于发现到预期目的地的最短路径。
图7示出根据某些实施例被称为队首阻塞的互连150的另一种现象。可以回顾互连150中的每个代理98具有用于存储微片200(图5)的缓冲器或队列96(诸如在核框52或高速缓存框54中)。因为待传输的消息由多个微片200组成,这些微片将被以预先确定的顺序传输。当缓冲器96中的第一微片200被阻止而无法访问水平环30的环槽口90时,被阻止的传出缓冲器97变满,妨碍新的消息进入环。
在图7中,假设代理1正在向代理7发送消息。代理1具有充满一起构成消息的微片200A-200G的缓冲器96。代理1能够在每个时间周期注入微片200(绿色矩形),其中,在图7中示出六个微片200。(在代理6的环停止器50内,微片200被直接传输到代理7。)由于这些微片已经存在与其对应的环槽口90内,代理2-6不能找到在水平方向传送微片的空槽口90。因此,代理2-6遭受到队首阻塞。
如图5所示,越界缓冲器66也具有缓冲器或队列96。也可在将分组注入到垂直环40内的越界缓冲器66的队列处发现队首阻塞现象。队首阻塞所产生的竞争在水平环30传播阻塞,由于环不能够排出用于垂直环的分组。这进而导致水平环的消息回弹增加。
在某些实施例中,槽口预订方法100避免驻留在核框52、高速缓存框54以及越界缓冲器66内的注入队列或缓冲器66处的由目的地环的空槽口不可用性导致的队首阻塞。另一种降低互连150的高效消息处理的现象被称为回弹。回弹可发生在不同情况下。
例如,在由于越界缓冲器66的不可用性,微片200不能离开水平环30时,回弹发生。在由于代理98不能接收该微片,微片200不能离开垂直环40时,回弹也可发生。在这些情况下,微片200将继续沿着环槽口90行进,这可降低其他消息传送操作的吞吐量。避免队首阻塞和回弹因此是改善互连150的吞吐量所期望的。如在此所使用的,回弹是指微片停留在互连150的环上,因为该微片不能离开环。尽管回弹可在垂直环40上发生,在某些实施例中,水平环30上的回弹可通过槽口预订方法100解决。在其他实施例中,在此相对于水平环30描述的原理类似地应用于垂直环40。
队首阻塞和消息回弹效应都会使得难以将新的消息排出至其预期目的地,这进而导致沿着互连150内的不同缓冲器或队列96传播的分组竞争。例如,当代理98不能处理微片200时,到代理72或74的传入队列或缓冲器96可能变满。这种竞争导致将新的消息注入互连150(或者从其弹出新的消息)的可能性被拒绝的某些代理饥饿。在某些实施例中,当该代理将消息注入互连150的能力被拒绝持续多于预先确定数量的循环、被拒绝直至其队列96充满、或者被拒绝直至队列到达阈值容量时,结果是严重性能降级以及互连延迟不可预测性。如在此所使用的,饥饿是布置在互连150的环上的一个或多个代理不能将微片注入环上的情况。饥饿可在水平环30或者在垂直环40内发生。
互连150的另一个方面是垂直环的环槽口90被划分为两种极性,其中,核代理使用一种极性并且高速缓存代理使用另一种。返回图5,核框52和高速缓存框54通过复用器56连接到水平环30的两个部分(顶部和底部)。由于这种配置,代理98可在水平环30的两个方向之一发送微片200,允许在更高效的方向上将微片传输到其预期代理。
对于核框72和高速缓存框74,连接稍微不同。复用器86选择性地将核框72和高速缓存框74连接到垂直环30的左侧或右侧。由于这种配置,组成单个消息的后续微片200由核框72(或者高速缓存框74)每隔一个时间周期地接收。
在某些实施例中,槽口预订方法100依赖于槽口预订机制在其被请求的方向上预订环槽口90。在某些实施例中,可进行优化,因为所预订的槽口可用于在与其原始传输方向相反的方向传输微片200。环槽口预订策略被定制为最小化互连150上的空预订槽口。
在某些实施例中,每个环槽口90使用寄存器来放置预订、预订所请求的方向以及请求环槽口的环停止器50。
图8是根据某些实施例的由环槽口50用于放置槽口预订的八字段寄存器160的简化框图。一个字段用于放置预订,第二字段用于限定预订的极性,第三字段用于限定预订的方向,并且三个字段允许指定请求预订的环停止器50。在某些实施例中,每个字段由单个位表示。对于具有六个环停止器50(红色)的水平环30,三个位足以标识进行预订的具体环停止器。然而,对于更大的互连,寄存器160可能需要利用更多的位来指定环停止器50。
在某些实施例中,每个环停止器50负责清除和发布槽口预订。当跨互连150行进时,预订槽口限制其他环停止器90,防止它们在寄存器160指定的方向注入任何微片200。然而,槽口预订不防止其他环停止器50在相反的方向注入微片200。当预订环槽口90到达放置槽口预订的环停止器50时,环停止器首先确保预订被清除并且然后使用预订所驻留的环槽口90。
图9是在某些实施例中用于示出槽口预订机制如何操作的简化图。图9中的环是垂直环40。假设第四代理98(标记为“请求代理4”)决定预订槽口。可以回顾,环停止器50专用于每个代理并且布置在互连150的水平环30和垂直环40之间。当被要求向这些环之一放置预订时,请求代理98将通知其水平环停止器60或垂直环停止器70并且请求槽口预订180。槽口预订180将被发布,但是请求代理98将需要等待直至保持槽口预订180的环槽口到达请求代理。
直至保持槽口预订的环槽口90返回请求代理,其他类似的代理被防止使用环槽口。如在此所使用的,“类似代理”被定义为具有与请求代理相同的极性的代理。因此,针对请求代理4,“类似代理”是代理6、8、10、12和2。尽管这些类似代理可被防止使用保持槽口预订180的环槽口90,在某些实施例中,具有以粉色示出的各自环槽口的剩余代理(代理5、7、9、11、1和3)仍然能够使用环槽口90。因此,尽管代理6、8、10、12和2将在预订槽口返回请求代理4之前看到预订槽口180,仅代理6不能访问该槽口,由于具有与请求代理相同的方向(顺时针)。然而,代理8、10和12也将在请求代理4之前看到预订槽口并且能够使用环槽口90。代理8、10和12可仍然使用具有槽口预订180的槽口90在逆时针方向传送微片,但是代理2不能使用该槽口在顺时针方向传送微片200。
在某些实施例中,在软件中实现槽口预订方法100。在其他实施例中,在硬件中实现方法100。在仍其他实施例中,使用硬件和软件元件的组合实现方法100。
在某些实施例中,当具体队列或缓冲器96被宣布饥饿时,槽口预订方法100发布槽口预订。可以回顾,每个代理或越界缓冲器将微片存储在队列或缓冲器96中,从而使得这些微片以预先确定的顺序进入互连150。在某些实施例中,将微片注入互连150的每个队列96(不管是核框52、高速缓存框54、越界缓冲器66A还是越界缓冲器66B中)具有相关联的计数器。每当队列96顶部的微片不能获得水平环30或垂直环40上的环槽口90时(在后一种情况下,在正确的极性下),该计数器递增。当该计数器到达可配置的阈值时,队列96被宣布饥饿。因此,相关联的环停止器50发布槽口预订请求。一旦该槽口已经被预订,该计数器被重置并且再次开始计数。
在某些实施例中,当跨水平环30(垂直环40)行进的微片200不能在目的地被消耗时,该微片被跨该环回弹。回弹源自两个主要原因。首先,当在水平环上从不同方向行进的两个微片200到达同一环停止器50时,回弹发生。如果两个微片200的目的地是越界缓冲器66(即,66A)的同一队列(例如,96C),环停止器50能够接受一个微片200但是拒绝另一个微片,其结果是第二微片继续通过水平环30回弹。第二,当越界缓冲器66A或66B的目的地队列96C或96B充满时,回弹发生,妨碍将微片200存储在越界缓冲器66内。第一种情况不可能在垂直环上发生并且可在某种程度上被容忍,但是第二种情况如果不及时控制,则可引起可消耗环30的大量带宽的连锁反应。
在图5中,槽口预订方法100被布置在水平环停止器60和垂直环停止器70中。在某些实施例中,在水平环停止器60中执行槽口预订方法100以便解决水平环30(A)中的饥饿,同时在垂直环停止器70中执行该方法以便解决垂直环40(B)中的饥饿和水平环30(C)中的回弹。
图10-12是示出根据某些实施例的槽口预订方法100如何分别在三种情况A、B和C下操作的流程图。通过监视核框和高速缓存框52、54中的缓冲器96A(96B)解决第一种情况(A),而通过监视越界缓冲器66中的缓冲器96C(96D)解决第二种情况(B)和第三种情况(C)。
槽口预订方法100类似地解决情况A和B,其中监视馈送入对应环中的缓冲器。计数器跟踪每次微片200不能获得环槽口90,不管是进入水平环30(A)还是垂直环40(B)。一旦计数器到达阈值(时间阈值),在水平环30(情况A)和垂直环40(情况B)中预订槽口。对于情况C,监视越界缓冲器96C(96D)的占用率或充满度。一旦缓冲器变得满过期望阈值(占用率阈值),调用槽口预订方法100,致使在垂直环中预订槽口。
图10在某些实施例中解决情况A,在水平环30上发生饥饿的可能性。首先,在核框52(高速缓存框54)的缓冲器96A(96B)的头部发现新的微片200(框102)的情况下,重新启动计数器(框104)。在微片200不能进入水平环30并且占用环槽口90的每个时间周期,计数器将被递增(框106)。因此,计数器帮助确定微片200是否已经在合理的时间段(如时间阈值所指定的)内进入水平环30。
然而,一旦计数器到达时间阈值(框108),在水平环30上预订槽口(框112)。可以回顾图8,在某些实施例中,寄存器160可用于获得槽口预订,其中三个位指示哪个环停止器50请求该预订。通过设置可为顺时针或者逆时针的适当方向位,进行方向指示。在这种情况下不需要任何极性指示,因为正在水平环30内进行槽口预订。
作为替代,在计数器尚未到达时间阈值时(框108的“否”分支)的情况下,槽口预订方法100检查是否有新的微片位于缓冲器96A(96B)的头部(框110)。如果不是,计数器递增(框106)并且再次进行阈值查询(框108)。否则,计数器被重置为零(框104)并且当新的微片被接收到缓冲器96A(96B)中时重新开始该过程。
图11在某些实施例中解决情况B,在垂直环40上发生饥饿的可能性。这时,监视越界缓冲器96C(96D)。当在缓冲器96C(96D)的头部发现新的微片200时(框122),重新启动计数器(框124)。在微片200不能进入垂直环40并且占用环槽口90的每个时间周期,计数器将被递增(框126)。因此,计数器帮助确定微片200是否已经在合理的时间段(如时间阈值所指定的)内进入垂直环40。
然而,一旦计数器到达时间阈值(框128),在垂直环40上预订槽口(框132)。再次,寄存器160可用于获得槽口预订,其中三个位指示哪个环停止器50请求该预订并且一个位指示预订的方向。由于垂直环40包括极性,当进行槽口预订时,也提供寄存器160中的极性指示。
作为替代,在计数器尚未到达时间阈值时(框128的“否”分支)的情况下,槽口预订方法100检查是否有新的微片位于缓冲器96C(96D)的头部(框130)。如果不是,计数器递增(框126)并且再次进行阈值查询(框128)。否则,计数器被重置为零(框124)并且当新的微片被接收到缓冲器96C(96D)中时重新开始该过程。
图12在某些实施例中解决情况C,在水平环30上发生回弹的可能性。再次,监视越界缓冲器96C(96D)。然而,这时,槽口预订方法100监视缓冲器有多满而不是缓冲器顶部的微片被处理得有多高效。
一旦越界缓冲器96C(96D)变满,水平环30上的微片200将被防止离开水平环,并且将因此没有其他选择而是绕环回弹,降低了消息处理的吞吐量。因此,槽口预订方法100继续检查越界缓冲器96C(96D)是否超过预先确定的阈值(占用率阈值)(框142)。如果超过,在垂直环40中放置槽口预订,其中寄存器160指示环停止器、极性以及方向(框144)。一旦放置了预订,槽口预订方法100在继续操作之前等待可配置数量的循环(框146)。在某些实施例中,完成等待,以便在越界缓冲器持续高于占用率阈值的情况下防止垂直环的预订泛滥。
槽口预订方法100依赖于检测越界缓冲器队列以及代理的传出队列的高占用率的可配置阈值,并且通过触发目的地环上的槽口预订(以适当的极性)作出响应。
在某些实施例中,槽口预订方法100的防饥饿机制控制最大互连延迟并且缓解环30(40)的固有注入优先级和自然行为所产生的不公平。
在某些实施例中,槽口预订方法100的回弹减少机制通过确保环30(40)的支路队列在将要变满时被高效地排出,来确保在提供垂直资源的公平带宽利用率的同时控制最大互连延迟。可实现其他策略以便提供具有服务质量目的的带宽保障。槽口预订方法100的槽口预订机制通过仅将预订放置在其被请求的方向上来调整以便最小化空预订槽口。
指示槽口预订方法100的图5中的红色方框在垂直环40中采用的防饥饿和回弹减少但是在水平环30中仅采用防饥饿。在某些实施例中,期望大多数回弹发生在水平环30中。
图13是示出根据某些实施例的当环槽口90到达环停止器50时槽口预订方法100后续的过程160的流程图。该过程160用于放置预订以及确定当存在就位的预订时使用当前槽口是否安全。
作为槽口预订方法100的一部分,环停止器50检查来自预订寄存器160的信息以及环槽口90的占用率。如果设置了预订字段(框162)并且当前环停止器50先前已经做出过预订(框164),环停止器在环槽口90重置预订字段160并且环槽口安全地用于传送(如果是空的话)(框172)。如果未设置预订字段(框162的“否”分支),则如果环槽口90未传输微片200(框168),则环槽口可用于通过环停止器50传送微片,从而使得环停止器50无需放置预订(框178)。然而,如果环槽口90当前正在传输微片200(框168的“是”分支),则环停止器50可放置预订(框170)。
在预订字段被设置的情况下(框162的“是”分支),环停止器50检查其是否“拥有”预订,也就是,预订是否由当前环停止器放置(框164)。如果是,环停止器50在环槽口90重置预订寄存器,使得环停止器安全地使用槽口以便传送微片(如果是空的话)(框172)。在环停止器50不“拥有”预订时(框164的“否”分支),环停止器确定当前预订是否在与所期望的一样的方向/极性(框166)。换言之,当前环停止器50是否想要在与槽口预订正在行进的相同方向/极性上发送微片200。如果是(框166的“是”分支),环槽口50不能放置预订并且不将槽口90用于传送微片200(框174)。否则,当前预订在与环停止器期望传输微片200的不同方向/极性行进。从而,当环停止器50不能放置预订时,环停止器能够将环槽口90用于传送微片200(框176)。对于当前环停止器90,分析完成并且在下一处理循环在下一后续环槽口50重复。
基于技术发展趋势,具有集成在单个管芯上的成百上千核和其他IP模块的处理器将广泛地用于云计算市场。在某些实施例中,期望槽口预订方法100是用于管芯上通信的可扩展解决方案的强有力的候选方案。
槽口预订方法100能够保障消息的公平性和延迟可预测性,允许设计者保障互连150内的每个代理的公平资源量以及基于提供具有延迟可预测性的最大性能提供服务质量。
图2的互连150被设计成用于首先在水平维度注入微片200并且如果需要的话使用越界缓冲器66将其移动到垂直维度。在另一种可能的实现方式中,可首先通过垂直维度注入微片200并且如果需要的话使用越界缓冲器将其移动到水平维度。
尽管已经针对有限数量的实施例描述了本申请,本领域技术人员将认识到从其延伸的许多修改和变形。旨在所附权利要求书涵盖所有这种修改和变形,落入本发明的真实精神和范围中。
Claims (28)
1.一种预订方法,包括:
监视包括高达多个微片的缓冲器,所述多个微片要沿着互连的环在多个代理中的一个代理和另一个代理之间传输;
基于所述缓冲器的特性代表所述代理在所述环的环槽口中放置槽口预订,所述槽口预订放置进一步包括:
指示所述槽口预订的方向;
指示请求所述槽口预订的所述代理;
其中,所述槽口预订在第一方向跨所述环行进,防止所述多个代理中的其他代理在所述第一方向在所述环上发送微片,直至所述槽口预订到达所述代理之后;
当所述微片在所述缓冲器的头部时,启动计数器;以及
每当所述微片不能进入所述环的多个环槽口之一时,递增所述计数器,其中用于将所述微片存放在所述环上的所述多个环槽口之一在每个后续时间周期内对所述代理可用。
2.如权利要求1所述的预订方法,进一步包括:
如果所述计数器超过预先确定的时间阈值,放置所述槽口预订。
3.如权利要求1所述的预订方法,进一步包括:
确定所述计数器未超过预先确定的时间阈值;
如果新的微片未被接收到所述缓冲器内,递增所述计数器。
4.如权利要求3所述的预订方法,进一步包括:
如果新的微片被接收到所述缓冲器内,重新启动所述计数器。
5.如权利要求1所述的预订方法,其中,所述环是所述互连的水平环。
6.如权利要求5所述的预订方法,代表所述代理在所述环中放置槽口预订进一步包括:
指示所述槽口预订的方向;以及
指示请求所述槽口预订的所述代理。
7.如权利要求6所述的预订方法,指示所述代理请求所述槽口预订进一步包括:
以对应于所述代理的值设置寄存器内的n个位,其中,整数n对应于位于所述互连上的2n个代理。
8.如权利要求1所述的预订方法,其中,所述缓冲器在所述代理处。
9.如权利要求1所述的预订方法,其中,所述环是所述互连的垂直环。
10.如权利要求9所述的预订方法,其中,代表所述代理在所述环中放置槽口预订进一步包括:
指示所述槽口预订的极性。
11.如权利要求1所述的预订方法,其中,所述缓冲器是布置在所述互连的水平环与垂直环之间的越界缓冲器。
12.一种预订方法,包括:
由耦合到互连内的水平环和垂直环的代理响应于所述代理不能将微片注入到所述水平环上持续预先确定的阈值,在所述水平环上放置槽口预订,所述水平环内的所述槽口预订放置进一步包括:
监视包括高达多个微片的缓冲器,所述多个微片要沿着所述互连的所述水平环在所述多个代理中的所述代理和另一个代理之间传输;
当所述微片在所述缓冲器的头部时,启动计数器;
每当所述微片不能进入所述水平环的多个环槽口之一时,递增所述计数器,其中用于将所述微片存放在所述水平环上的所述多个环槽口之一在每个后续时间周期内对所述代理可用;以及
在所述计数器超过所述预先确定的阈值时,在所述水平环上放置所述槽口预订;
由所述代理响应于所述垂直环上的一个或多个代理不能将微片注入到所述垂直环上持续第二预先确定的阈值,在所述垂直环上放置槽口预订;或
由所述代理响应于所述代理的所述微片在所述水平环上时不能在所述第二预先确定的阈值内离开所述水平环,在所述垂直环上放置槽口预订;
其中,所述槽口预订预订多个槽口中的槽口,所预订的槽口使得所述代理能够将所述微片注入到所述互连上。
13.如权利要求12所述的预订方法,由所述代理在所述垂直环上放置所述槽口预订进一步包括:
监视包括高达多个微片的缓冲器,所述多个微片要沿着所述互连的所述垂直环在所述多个代理中的所述代理和另一个代理之间传输;
当所述微片在所述缓冲器的头部时,启动计数器;
每当所述微片不能进入所述垂直环的多个环槽口之一时,递增所述计数器,其中用于将所述微片存放在所述环上的所述多个环槽口之一在每个后续时间周期内对所述代理可用;以及
在所述计数器超过所述预先确定的阈值时,将所述槽口预订放置在所述垂直环上。
14.如权利要求12所述的预订方法,由所述代理在所述垂直环上放置第二槽口预订进一步包括:
监视包括高达多个微片的缓冲器,所述多个微片要沿着所述互连的所述垂直环在所述多个代理中的所述代理和另一个代理之间传输;以及
如果所述缓冲器超过预先确定的占用率,在所述垂直环上放置所述槽口预订。
15.一种环停止器,包括:
水平环停止器,用于处理进入所述水平环的微片;
缓冲器,存储要被接收到所述水平环内的微片;
垂直环停止器,用于处理进入垂直环的微片,其中,所述环停止器布置在所述水平环和所述垂直环之间;
越界缓冲器,布置在所述水平环停止器和所述垂直环停止器之间,所述越界缓冲器用于存储从所述水平环接收的并且旨在用于所述垂直环的微片;
寄存器,当被设置时,所述寄存器调用槽口预订,所述寄存器包括:
n个位,n为整数,用于指定代理标识符,所述代理标识符用于指示哪个代理正在请求所述槽口预订,其中整数n对应于位于互连上的2n个代理,每个代理包括唯一的代理标识符;
方向位,用于指示所述槽口预订应当行进的方向;以及
极性位,用于指示所述槽口预订应当预订的极性,其中,所述极性位仅用于所述垂直环;
其中,槽口由耦合在所述互连的所述水平环和所述垂直环之间的代理响应于情况预订。
16.如权利要求15所述的环停止器,其中,所述水平环停止器进一步包括:
第一复用器,耦合在高速缓存代理和所述水平环之间;以及
第二复用器,耦合在核代理和所述水平环之间;
其中,所述第一和第二复用器在顺时针方向或者逆时针方向将所述微片存放在所述水平环上。
17.如权利要求15所述的环停止器,其中,所述垂直环停止器进一步包括:
第一复用器,耦合在所述垂直环和高速缓存代理之间;以及
第二复用器,耦合在所述垂直环和核代理之间;
其中:
在第一时间周期内:
所述第一复用器在顺时针方向将所述微片存放在所述垂直环上;以及
所述第二复用器在逆时针方向将第二微片存放在所述垂直环上;以及
在紧接着所述第一时间周期的第二时间周期内:
所述第一复用器在逆时针方向将所述微片存放在所述垂直环上;以及
所述第二复用器在顺时针方向将第二微片存放在所述垂直环上。
18.如权利要求15所述的环停止器,其中,所述情况包括所述水平环上的饥饿,其中耦合到所述互连的一个或多个代理不能将微片存放到所述水平环上。
19.如权利要求15所述的环停止器,其中,所述情况包括所述垂直环上的饥饿,其中耦合到所述互连的一个或多个代理不能将微片存放到所述垂直环上。
20.如权利要求15所述的环停止器,其中,所述情况包括所述水平环上的回弹,其中存储在所述越界缓冲器内的微片的数量超过预先确定的数量。
21.一种互连装置,包括:
与第一代理相关联的第一环停止器,所述第一环停止器用于将微片从多维环形互连结构的第一环移动到第二环,其中所述第一环能够在第一方向和第二方向发送微片,其中所述第一环停止器包括预订逻辑,所述预订逻辑用于响应于与所述第一环停止器相关联的拥塞情况在第一方向在所述第一环上请求槽口预订;
与第二代理相关联的第二环停止器,所述第二环停止器响应于所述第一方向的所述槽口预订在所述第一方向在所述第一环上不发布微片,直至所述槽口预订到达所述第一环停止器;
其中,所述第一环停止器通过进行以下操作在所述第一环上请求槽口预订:
监视包括高达多个微片的缓冲器,所述多个微片要沿着所述互连的第一环在多个代理中的一个代理和另一个代理之间传输;
当所述微片在所述缓冲器的头部时,启动计数器;
每当所述微片不能进入所述第一环的多个环槽口之一时,递增所述计数器,其中用于将所述微片存放在所述第一环上的所述多个环槽口之一在每个后续时间周期内对所述代理可用;以及
在所述计数器超过预先确定的阈值时,在所述第一环上放置所述槽口预订。
22.如权利要求21所述的装置,其中,所述第一环停止器包括垂直环停止器、缓冲器和水平环停止器。
23.如权利要求21所述的装置,其中,所述第一环包括水平半环。
24.如权利要求23所述的装置,其中,所述第二环包括垂直半环。
25.如权利要求21所述的装置,其中,所述拥塞情况包括所述第一环上的饥饿。
26.如权利要求21所述的装置,其中,所述拥塞情况包括所述第二环上的饥饿。
27.如权利要求21所述的装置,其中,所述拥塞情况包括所述第一环上的回弹。
28.一种用于预订的设备,包括多个装置,每个装置用于执行如权利要求1-14中任一项所述的方法的相应步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/631,944 | 2012-09-29 | ||
US13/631,944 US8982695B2 (en) | 2012-09-29 | 2012-09-29 | Anti-starvation and bounce-reduction mechanism for a two-dimensional bufferless interconnect |
PCT/US2013/045862 WO2014051748A1 (en) | 2012-09-29 | 2013-06-14 | Anti-starvation and bounce-reduction mechanism for a two dimensional bufferless interconnect |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104583991A CN104583991A (zh) | 2015-04-29 |
CN104583991B true CN104583991B (zh) | 2017-12-29 |
Family
ID=50385069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380045371.5A Active CN104583991B (zh) | 2012-09-29 | 2013-06-14 | 预订方法、环停止器以及互连装置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8982695B2 (zh) |
CN (1) | CN104583991B (zh) |
DE (1) | DE112013003900B4 (zh) |
WO (1) | WO2014051748A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8982695B2 (en) | 2012-09-29 | 2015-03-17 | Intel Corporation | Anti-starvation and bounce-reduction mechanism for a two-dimensional bufferless interconnect |
CN104636085B (zh) * | 2015-01-27 | 2017-10-03 | 北京理工大学 | 一种片上网络消息缓冲区的存储管理模块 |
US10193826B2 (en) * | 2015-07-15 | 2019-01-29 | Intel Corporation | Shared mesh |
US9547539B1 (en) | 2015-09-10 | 2017-01-17 | International Business Machines Corporation | Reserving space in a mail queue |
CN108400880B (zh) * | 2017-02-07 | 2020-11-03 | 华为技术有限公司 | 片上网络、数据传输方法和第一交换节点 |
CN108512735B (zh) * | 2017-02-25 | 2021-04-20 | 华为技术有限公司 | 一种数据传输方法和装置 |
US11294850B2 (en) * | 2019-03-29 | 2022-04-05 | Intel Corporation | System, apparatus and method for increasing bandwidth of edge-located agents of an integrated circuit |
US11784941B2 (en) * | 2021-07-13 | 2023-10-10 | Arm Limited | Apparatus and method for operating a ring interconnect |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1938695A (zh) * | 2004-03-26 | 2007-03-28 | 皇家飞利浦电子股份有限公司 | 集成电路和用于事务中止的方法 |
CN101305354A (zh) * | 2005-08-11 | 2008-11-12 | P.A.Semi公司 | 每个代理队列较浅的非阻塞地址开关 |
CN101341474A (zh) * | 2005-12-22 | 2009-01-07 | Arm有限公司 | 用于对事务重排序来确保每个事务所规定的服务质量的仲裁方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7009991B2 (en) * | 2002-03-28 | 2006-03-07 | Matisse Networks | Reservation-based media access controller and reservation-based optical network |
US20060041715A1 (en) | 2004-05-28 | 2006-02-23 | Chrysos George Z | Multiprocessor chip having bidirectional ring interconnect |
EP1605727A1 (en) | 2004-06-09 | 2005-12-14 | Koninklijke Philips Electronics N.V. | Integrated circuit and method for time slot allocation |
US7733898B2 (en) * | 2004-08-25 | 2010-06-08 | Intel Corporation | Method and apparatus for preventing starvation in a slotted-ring network |
US7965725B2 (en) | 2005-05-31 | 2011-06-21 | Stmicroelectronics, Inc. | Hyper-ring-on-chip (HyRoC) architecture |
US7760669B2 (en) * | 2006-06-27 | 2010-07-20 | International Business Machines Corporation | Method and apparatus for preventing starvation in a slotted ring data communications network |
US8593960B2 (en) | 2010-06-30 | 2013-11-26 | Intel Corporation | Providing a bufferless transport method for multi-dimensional mesh topology |
US8554851B2 (en) | 2010-09-24 | 2013-10-08 | Intel Corporation | Apparatus, system, and methods for facilitating one-way ordering of messages |
US8982695B2 (en) | 2012-09-29 | 2015-03-17 | Intel Corporation | Anti-starvation and bounce-reduction mechanism for a two-dimensional bufferless interconnect |
-
2012
- 2012-09-29 US US13/631,944 patent/US8982695B2/en not_active Expired - Fee Related
-
2013
- 2013-06-14 WO PCT/US2013/045862 patent/WO2014051748A1/en active Application Filing
- 2013-06-14 CN CN201380045371.5A patent/CN104583991B/zh active Active
- 2013-06-14 DE DE112013003900.1T patent/DE112013003900B4/de active Active
-
2015
- 2015-01-26 US US14/605,988 patent/US9407454B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1938695A (zh) * | 2004-03-26 | 2007-03-28 | 皇家飞利浦电子股份有限公司 | 集成电路和用于事务中止的方法 |
CN101305354A (zh) * | 2005-08-11 | 2008-11-12 | P.A.Semi公司 | 每个代理队列较浅的非阻塞地址开关 |
CN101341474A (zh) * | 2005-12-22 | 2009-01-07 | Arm有限公司 | 用于对事务重排序来确保每个事务所规定的服务质量的仲裁方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014051748A1 (en) | 2014-04-03 |
US9407454B2 (en) | 2016-08-02 |
CN104583991A (zh) | 2015-04-29 |
US8982695B2 (en) | 2015-03-17 |
DE112013003900B4 (de) | 2023-07-27 |
DE112013003900T5 (de) | 2015-04-16 |
US20140092732A1 (en) | 2014-04-03 |
US20150139242A1 (en) | 2015-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104583991B (zh) | 预订方法、环停止器以及互连装置 | |
CN105745885B (zh) | 用于高性能结构内的灵活信用交换的方法和系统 | |
DE60119224T2 (de) | Speicherverwaltungseinheit für eine Vermittlungsstelle | |
KR101607180B1 (ko) | 패킷 재조립 및 재배열 방법, 장치 및 시스템 | |
DE112020002510T5 (de) | Verfahren und system zur gewährleistung von fairness zwischen anwendungen beim netzeintritt | |
CN103729331B (zh) | 片上网络通信死锁避免方法、路由器及通信网络 | |
CA2015514C (en) | Packet switching system having bus matrix switch | |
CN103916326B (zh) | 用于数据中心的系统、方法以及设备 | |
US7133399B1 (en) | System and method for router central arbitration | |
CN105391567B (zh) | 流量管理实现方法、装置和网络设备 | |
US7769003B2 (en) | Data packet switch and method of operating same | |
US20050036502A1 (en) | System and method for handling multicast traffic in a shared buffer switch core collapsing ingress VOQ's | |
CN100420241C (zh) | 实现信息交换的系统及方法和调度算法 | |
CN105740199B (zh) | 芯片上网络的时序功率估算装置与方法 | |
CN106537858B (zh) | 一种队列管理的方法和装置 | |
CN105897621A (zh) | 基于cioq结构的千兆afdx交换机及其交换方法 | |
CN104243348B (zh) | 一种数据处理方法和装置 | |
CN102916902B (zh) | 数据存储方法及装置 | |
CN106453139A (zh) | 数据包调度的方法及装置 | |
CN102906729B (zh) | 用于路由数据的交换装置、使用此装置的计算机互连网络与路由方法 | |
CN104954261B (zh) | 利用流表转发数据的方法及系统 | |
CN108173787A (zh) | Fc交换机的数据传递路径选择方法、并行调度方法及装置 | |
CN109218220A (zh) | 一种负载均衡的单组播业务混合交换方法 | |
WO2023130835A1 (zh) | 一种数据交换方法及装置 | |
CN103384225B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |