CN106716394A - 片上网络拓扑内的隧穿 - Google Patents
片上网络拓扑内的隧穿 Download PDFInfo
- Publication number
- CN106716394A CN106716394A CN201580046621.6A CN201580046621A CN106716394A CN 106716394 A CN106716394 A CN 106716394A CN 201580046621 A CN201580046621 A CN 201580046621A CN 106716394 A CN106716394 A CN 106716394A
- Authority
- CN
- China
- Prior art keywords
- packet
- tunnel
- signal
- data
- noc
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- 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
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
- H04L47/365—Dynamic adaptation of the packet size
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/628—Queue scheduling characterised by scheduling criteria for service slots or service orders based on packet size, e.g. shortest packet first
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
各***和方法涉及一种片上网络(NoC),该NoC包括被配置成在第一方向上携带数据分组的一个或多个通道,该第一方向具有上游端和下游端。隧道被配置在上游端处的上游元件与下游端处的下游元件之间。该隧道包括由一个或多个通道共享的共用导线。该隧道被配置成:基于共用信号在共用导线上传送两种或更多种格式的数据分组。共用信号包括:用于在共用导线上传送属于数据分组的数据、控制或调试信息中的一者或多者的数据信号,以及用于控制数据信号在共用导线上的传输的组帧信号。
Description
公开领域
所公开的各方面涉及片上网络(NoC)中使用隧道的数据通信。在示例性方面,该隧道是分组格式不可知的并且被配置成:使用共用信号在该隧道的共用导线上传送两种或更多种格式的数据分组,这些共用导线由该NoC的一个或多个通道共享。
背景
对于处理***,片上***(SoC)的设计涉及在被集成在半导体芯片上的各种***组件之间进行布线。在针对SoC的各种布线要求设计片上网络(NoC)时,导线布线拥挤往往是一个挑战。长的导线和总线对于布线是特别困难的,并且可能易于出错和数据丢失。此外,在两个实体之间使用专用导线来进行数据通信可能导致低效率。例如,虽然一些导线可能被过度利用,但是可能存在一些利用不足的导线。此外,其中可封装数据的不同分组格式可能需要不同类型的导线和传输协议。跨导线共享数据话务以力图促进统一利用可能导致在NoC的各种导线之间传达的各种类型或格式的数据的之间的冲突。
因此,存在对减少导线的数目、以及改善片上网络(NoC)的现有导线的利用效率的需求。
概览
本公开的示例性方面包括涉及片上网络(NoC)的***和方法,该NoC包括被配置成在第一方向上携带数据分组的一个或多个通道,所述第一方向具有上游端和下游端。隧道被配置在所述上游端处的上游元件与所述下游端处的下游元件之间。所述隧道包括由所述一个或多个通道共享的共用导线。所述隧道被配置成:基于共用信号在所述共用导线上传送两种或更多种格式的数据分组。共用信号包括:用于在所述共用导线上传送属于所述数据分组的数据、控制或调试信息中的一者或多者的数据信号,以及用于控制所述数据信号在所述共用导线上的传输的组帧信号(framing signal)。
例如,示例性方面包括一种片上网络(NoC),所述NoC包括:一个或多个通道,所述一个或多个通道被配置成在第一方向上携带数据分组,所述第一方向包括上游端和下游端;以及隧道。所述隧道被配置在所述上游端处的上游元件与所述下游端处的下游元件之间。所述隧道包括由所述一个或多个通道共享的共用导线,并且所述隧道被配置成:使用共用信号在所述共用导线上传送两种或更多种格式的数据分组。
另一示例性方面包括一种操作片上网络(NoC)的方法,所述方法包括:将一个或多个通道配置成在第一方向上携带数据分组,所述第一方向包括上游端和下游端;以及在包括共用导线的隧道上将所述数据分组从所述上游端上的上游元件传送到所述下游元件上的下游元件,所述共用导线由所述一个或多个通道共享。传送所述数据分组包括:使用共用信号在所述隧道的所述共用导线上传送两种或更多种格式的数据分组。
又一示例性方面包括***,所述***包括:用于在第一方向上携带数据分组的一个或多个通道,所述第一方向包括上游端和下游端;以及用于将所述数据分组从所述上游端上的上游元件传送到所述下游元件上的下游元件的装置。所述用于传送的装置包括由所有通道共享的共用导线,并且所述用于传送的装置被配置成:使用共用信号在所述共用导线上传送两种或更多种格式的数据分组。
附图简述
给出附图以帮助对本发明的实施例进行描述,且提供附图仅用于解说实施例而非对其进行限定。
图1解说了被配置用于发送方与接收方之间的数据通信的示例性***。
图2是对用于发送方与接收方之间的数据通信的示例性方法的流程图解说。
详细描述
在以下针对本发明的具体实施例的描述和有关附图中公开了本发明的各方面。可以设计出替换实施例而不会脱离本发明的范围。另外,本发明中众所周知的元素将不被详细描述或将被省去以免湮没本发明的相关细节。
术语“本发明的实施例”并不要求本发明的所有实施例都包括所讨论的特征、优点、或操作模式。
本文中所使用的术语仅出于描述特定实施例的目的,而并不旨在限定本发明的实施例。如本文所使用的,单数形式的“一”、“某”和“该”旨在也包括复数形式,除非上下文另有明确指示。将进一步理解,术语“包括”、“具有”、“包含”和/或“含有”在本文中使用时指明所陈述的特征、整数、步骤、操作、要素、和/或组件的存在,但并不排除一个或多个其他特征、整数、步骤、操作、要素、组件和/或其群组的存在或添加。
此外,许多实施例是根据将由例如计算设备的元件执行的动作序列来描述的。将认识到,专门电路(例如,专用集成电路(ASIC))、执行程序指令的一个或多个处理器、或这两者的组合可以执行本文中所描述的各种动作。另外,本文所描述的动作序列可被认为是完全体现在任何形式的计算机可读存储介质内,该计算机可读存储介质内存储有一经执行就将使相关联的处理器执行本文所描述的功能性的相应计算机指令集。由此,本发明的各个方面可以用数种不同的形式来体现,所有这些形式都已被构想落在所要求保护的主题内容的范围内。另外,对于本文所描述的每个实施例,任何此类实施例的对应形式可在本文中被描述为例如被配置成执行所描述的动作的“逻辑”。
本公开的各方面涉及对被配置成通过共享的物理导线组来耦合或链接片上网络(NoC)的两个或更多个网络元件的隧道的实现。隧道可携带数据流,或者更具体而言,携带数据分组流。如本文所使用的,术语“数据”和“数据信号”可包括与数据有关的信号或信息,以及其他信息,诸如控制信息、调试信息等等。在本公开中,在隧道上传送或传输的数据信号可包括所有此类相关的信息,诸如数据、控制、调试等等,但是另一方面,关于在隧道自身上的传输,使用进一步的控制信号,这些控制信号将参照术语“组帧信号”来解释。
因此,谨记对数据或数据信号的上述定义,数据“分组”可包括数据的一个或多个字,其中“字”可指代一个或多个数据比特的组的最小粒度。示例性数据分组可包括报头和数据有效载荷(数据有效载荷在下文可简单地被称为数据)。报头可包含关于数据的信息,其中此类信息可包括控制信息、和/或关于分组大小、开始和结束字/字段等的信息,其可使得数据分组的标识和处理容易。因此,隧道可包括物理介质,***的两个或更多个组件或者NoC的两个或更多个点可通过该物理介质进行通信。隧道可携带数据分组流,其可以是不同的格式或类型。由于隧道能够支持数据分组流而不限于任何特定类型或格式,因此可以避免用于各种数据分组流的专用导线。
在一些方面,可使用“共用信号”在隧道中的共用导线组上发送不同格式的数据分组。“共用信号”包括表示正在传送的数据比特的“数据信号”以及前面提到的“组帧信号”。术语“组帧信号”在本公开中已被用于将它们的功能与可包括在正在传送的数据信号中的控制信息进行区分。如此,“组帧信号”更具体而言指代用于控制数据信号在隧道的共用导线上的传输的各个方面的控制信息。组帧信号可以控制各种格式的数据分组在隧道上的传输。数据信号还可包括在隧道中的共用导线组上传送的任何格式的数据或数据分组。由此,包括数据信号以及组帧信号的共用信号可以用于两种或更多种数据分组格式在隧道中的共用导线组上的传输。以此方式,示例性隧道被配置成格式不可知的并且可以灵活地支持不同格式和类型的数据分组的传输。
一般而言,参照在由隧道耦合的两个网络元件之间的数据传递的第一方向或前向方向,上游元件可被配置成在该隧道上发送或传送数据。下游元件可被配置成接收数据。数据通信的第二方向或反向方向在隧道上也是可能的,其中上游元件和下游元件的功能性可以倒转,并且因此为了简明起见将不再重复对反向方向的详细描述。
继续参照第一方向,来自一个或多个通道的数据可馈送上游元件、传递通过隧道中共享的导线组、并由下游元件接收。下游元件随后可将该数据转发到NoC的下游侧上的一个或多个通道。一般而言,馈送上游元件的一个或多个通道在排出下游元件的一个或多个通道之间具有一一对应关系。因此,可以看到,在示例性方面,隧道可通过在NoC的上游端与下游端之间实现共享的导线组来缓解导线拥挤,由此避免专用导线组以及针对这些端之间的专用导线组中的每一者的相关的布线复杂度。
为了解释跨隧道中的共享导线组对数据的分享,将考虑NoC的三个通道A、B和C的非限制性示例。这三个通道被配置成携带数据并且可连接到上游端上的任何数目的一个或多个实体以及下游端上的任何数目的一个或多个实体。可在NoC的两个点或部分之间实现隧道,以使得例如通道A上的数据在上游端进入隧道并退出隧道以在通道A上向下游继续。对于通道B和C类似。通道A、B和C中的每个通道可携带不同格式的数据分组,并且这些通道可具有不同的带宽和/或进入/离开隧道的导线数目。然而,在隧道内,数据可被重新整形。数据分组可被重新整形并映射到隧道内共享或共用的导线组。重新整形数据分组可包括关于以下各项中的一者或多者的修改:在其上传送数据分组的共用导线的数目、传输的时钟速率、或者传输所消耗的时钟循环的数目。重新整形、修改或重映射数据分组到隧道的共用导线上的各方面也可被称为“串行化”。隧道中的共用导线是不可知数据分组的格式的,以使得来自通道A、B和C的数据分组可以被串行化在共用导线上,即使这些数据分组可以是不同的格式。
因此,隧道充当分组传输单元。然而,隧道必须不更改数据分组的比特级内容。在示例性方面,为了在共享或共用导线上可能具有冲突的数据分组之间的仲裁,隧道可查找正在传送的数据分组的内容;并且隧道可改变数据分组的“形状”,如本文所描述的,该数据分组的“形状”可与导线的数目、时钟速率、或者由数据分组的传输所消耗的时钟循环的数目有关。
在上游端处,本文中被称为“隧穿复用器”(或者更简单地,“隧道复用器”或“复用器”)的网络元件从通道A、B和C接收数据,并将它们放置在隧道中的共享导线组上。复用器可以对从通道A、B和C中的任何一个或多个通道接收的数据分组进行重新整形。此外,通道A、B、C可具有不同的性能要求,并且更具体而言,一些数据分组自身可携带个体优先级。由此,数据分组之间或通道之间可能出现冲突。在存在冲突的情形中(其将在以下部分中进一步解释),本文中被称为“通道仲裁器”或者简单地“仲裁器”的另一个网络元件可以帮助解决冲突并确定哪些数据分组可获得优先。
在下游端处,被称为“隧穿解复用器”(或者更简单地,“隧道解复用器”或“解复用器”)的对应网络元件从隧道接收数据分组并将他们重映射到通道A、B和C上。由于数据分组可被重新整形,因此可在解复用器中实现一个或多个缓冲器(诸如先进先出(FIFO))以搜集数据分组的各个字或比特。每个通道可具有对应的FIFO,其可用于重新打包或重映射数据分组。一旦在通道上开始数据分组的传输,该传输就不能被中断,并且必须完成该数据分组的传输,然后才开始另一数据分组在相同通道上的传输,在该意义上,数据分组意味着是原子的。FIFO可用于当从各个共用导线接收经重新整形的数据分组的各部分时对其进行存储并随后将它们转发到通道上。FIFO的该功能性也可被称为存储-转发功能。
在示例性方面,所谓的“组帧信号”被包括在隧道中。这些组帧信号包括与在共用导线上传送的数据分组有关的控制信息。组帧信号可包括与数据分组有关的信息,诸如,数据分组的开始/停止字段(或“字”)、隧道的共用导线当前是正在传送数据分组的字还是空闲的(例如,在等待循环期间)、或者它们是否是无效的或等效于等待循环、某个字是否是报头。在示例性方面,共用导线上的组帧信号体现数据分组的形状。组帧信号由复用器以及解复用器用于处理在共用导线上携带的数据分组。冲突解决、优先级指派等等的各方面可以基于这些组帧信号。在一些方面,仅当组帧信号除了数据分组的形状之外还提供优先级信息时,优先级指派才会基于组帧信号。
更详细地,可在字基础上或者在分组基础上对在隧道上传送的数据分组进行仲裁。在每字基础上仲裁的数据分组指代可以跨各个共用导线自由分解的数据分组。每字仲裁的数据分组不是性能关键的,并且它们的传输可以例如在任何字边界处被中断,以便为较高优先级的数据分组让路。另一方面,在每分组基础上仲裁的数据分组意味着这些数据分组是较高优先级并且需要跨隧道不被中断地传送。另一方面,如果仲裁器要中断高优先级的数据分组,则对应的FIFO将不得不存储-转发,以便移除由于中断而***到数据分组中的所***的等待循环。由此,中断将在向下游转发数据分组时引起等待时间惩罚。由此,期望防止仲裁器中断此类高优先级的数据分组。
为了处理这些高优先级的数据分组,在一些方面可利用“被占用(engaged)”分组的概念,其中“被占用”分组指代不能被中断的数据分组的高优先级状态。被占用分组可被重新整形,但是必须以不被中断的方式来传送。被占用分组可伴随有组帧信号,该组帧信号通知对应的下游FIFO一接收到数据分组的比特就开始将它们转发到对应的下游通道。在分组仲裁的通道的示例性方面,一旦已开始数据分组的头的传输,该数据分组就将被标示为被占用。
在示例性方面,期望在某一时间仅具有单个被占用分组,以便确保隧道能够容适该数据分组的高优先级传输。如果存在多个被占用分组,则在多个高优先级之间的仲裁将是困难的。因此,除非携带被占用分组的通道的目的地FIFO已满,或者在该通道的被占用分组进入隧道之前隧道中存在气泡(bubble)或等待循环,否则假设单个被占用分组可跨隧道不被中断地传送。该行为确保当一个通道的FIFO变为已满时,其他通道不受损害。
参照图1,解说了片上网络或NoC 100。NoC 100包括上游复用器102和下游解复用器108。上游侧上的通道A、B和C被标示为A_u、B_u和C_u,而下游侧上通道被标示为A_d、B_d和C_d。被实现在复用器102与解复用器108之间的隧道105基于包括数据信号104和组帧信号106的共用信号来操作。数据信号104表示在隧道105中正携带的数据分组的数据比特,并且组帧信号106包括与在数据信号104上传送的数据有关的信息。这些共用信号使得隧道105能够在相同的共用导线组上携带或传送两种或更多种格式的数据分组。换言之,以这些共用信号的形式来表示任何格式的数据分组,并且由此,不需要修改隧道105来迎合任何分组格式的特定需求。
通道仲裁器126可在由通道A_u、B_u和C_u提供的数据分组之间进行仲裁。解复用器108可包括FIFO 120A、120B和120C以用于存储从隧道105接收的数据并将它们转发到对应的通道A_d、B_d和C_d上。
一般而言,在隧道105上每个时钟循环可传送一个字。复用器102可将从通道A_u、B_u和C_u接收的数据分组分解成一个或多个片段,其中每个片段可包括一个或多个字。解复用器108可通过利用FIFO 120A、120B和120C将在来自各个通道的数据信号104上接收的字组装成它们相应的数据分组。由于数据分组可以是不同的格式和优先级,组帧信号106可用于在数据信号104上传输各种格式和优先级的数据分组。
组帧信号106可包括与在数据信号104上传送的数据分组有关的若干控制信号。例如,组帧信号116(其可从复用器102被传送到解复用器108)可包括有效信号110、尾信号112(和/或头信号,未示出)、通道信号114、以及行进信号(go signal)118。这些信号的组合可具有不同的含义,这些含义可用于传达关于在数据信号104上传送的数据分组的信息。组帧信号116还可包括在反向方向上的流控制(FC)信号116,其可从解复用器108被传送到复用器102。现在将进一步详细地解释这些信号及其组合。
以FC信号116开始,该信号可由解复用器108设置,并且可指示解复用器108是否能够或准备好接收数据信号104上的数据。如果仅存在一个通道,则简单的“就绪”信号可以是足够的,但是在与如本文讨论的多个通道相关的所解说方面的情形中,FC信号116表示每个通道的流控制信号。更详细地,FC信号116包括每个通道至少一个信号,以控制在该通道上的话务流。流控制可具有每个通道一个以上信号,特别是在通道包括流水线级和/或时钟域交叉的情形中。在此类情形中,组帧信号106可包括两个或更多个流控制信号或者多比特流控制信号,其实现“信用”或基于信用的***以用于在任一方向上对每个通道的流控制。例如,通道仲裁器126可基于可用于特定通道的信用来向通道发送数据分组,并且流控制可基于每个通道的信用。
关于每个通道单个流控制信号的示例,取决于FIFO 120A-C中留下的存储空间的量,FC信号116可具有分别与通道A、B和C相对应的分量信号(例如,116A、116B、116C,未示出),其中这些分量信号可在每通道基础上被断言或被解除断言。如果解复用器108不能够或者变得不能够接收或接受特定通道的数据,则对应于该通道的FC信号116将被解除断言,这将超驰剩余的组帧信号。换言之,如果特定通道的FC信号116未被断言,则在该通道上的数据字或数据分组的数据传输将不会从复用器102被传送到解复用器108。
接着,有效信号110可指示在数据信号104上的信号是否表示有效字。例如,在一些情形中,在某个时钟循环期间,如果接收对应数据分组的通道在该时钟循环期间没有要发送的数据,则可在字流中***空闲或等待循环。在此类情形中,有效信号110可被解除断言,以指示没有正在传送有效字。仅当有效信号110被断言时,剩余的组帧信号才可能有意义。
尾信号112(当有效信号110被断言时)可指示当前正在传送的字是否是其对应数据分组的结尾。类似地,“头”信号可用于指示当前正在传送的字是否是其对应的数据分组的开始。是使用所描绘的尾信号还是使用头信号可取决于数据分组内的上下文,因为它们可以用于传达相同的信息。因此,尾信号112可被宽泛地解读为包括尾信号或头信号,视情况而定。
通道信号114(当有效信号110被断言时)指示特定的字或数据分组所关联的通道。结合尾信号112,通道信号114可基于由复用器102对数据分组进行整形的方式来传达该数据分组的最后一个字是否在特定通道上。
如先前描述的,“行进”信号可用于高优先级或被占用分组的传输。如所示出的,行进信号118(当有效信号110被断言时)可向解复用器108指示一接收到数据比特或字就可能需要将其转发到对应的下游通道A_d、B_d或C_d。
另外,差错校验或奇偶校验信号(诸如差错控制编码(ECC)比特)也可被添加为组帧信号以用于数据分组中的检错/纠错。可在每字基础上传送ECC比特。
在由复用器102传送的各个数据分组之间存在冲突的情形中,通道仲裁器126可被配置成解决这些冲突。如所描述的,取决于优先级或服务质量(QoS)水平,可以不同的方式来处理各种类型的数据分组。对于分组仲裁的或被占用分组,通道仲裁器126可设置行进信号118以指示当在解复用器102处接收数据分组时对字进行转发。例如,仅当解复用器108中特定通道的FIFO已满(其可进而使该通道的对应FC信号116被解除断言时);或者仅当在被占用分组进入隧道之前该被占用分组中存在气泡时,与被占用分组相关联的字在该通道上的传递才会被中断。由于气泡指示在该气泡期间未传送有效字,因此该气泡可被用于替换的字或数据分组的传输。例如,可在被占用第一数据分组进入隧道之前,在该被占用第一数据分组中预先存在的气泡期间传送字仲裁的数据分组的字。
如果不存在可用于传输的与字仲裁的数据分组相关联的数据分组,则可选择第二分组仲裁的数据分组(如果可用于传输的话),以在被占用第一数据分组的气泡期间传送字。若干个协议选项可适用于此类情形。例如,在一些方面,该第二数据分组最初未“占用”(即,该第二数据分组仍然保持比“被占用”第一数据分组更低的优先级)。因此,行进信号118相对于第二数据分组未被断言,以便通知解复用器108中的对应FIFO可向下游发出第二数据分组并且需要不被中断。在该方面,可假设导致被占用第一数据分组被延后并引入气泡的条件可能是临时的。由此,该假设规定,被占用第一数据分组将恢复传输并潜在地消耗数据信号104中隧道的所有可用带宽。该方面可适用的示例情形可涉及存在于被占用第一数据分组中的单个气泡或空传输时隙。因此,在该示例中,一旦被占用第一数据分组结束在隧道105上的传输,第二数据分组就将获得“被占用”状态。由此,在该阶段,仲裁器126可断言行进信号118,以便用信令通知解复用器108何时发出下一个字,该下一个字将与现在被占用的第二数据分组有关。
然而,在替换的场景中,如果使被占用第一数据分组延后的条件持续或重复其自身,则可在由被占用第一数据分组的气泡创建的传输时隙上传送第二数据分组的若干个字。在该场景中,可能期望在延后的被占用第一数据分组已结束传输之前将第二数据分组提升到“被占用”状态。
现在将描述用于在延后的被占用第一数据分组的传输完成之前将第二数据分组提升到被占用状态的一个或多个协议选项。在一个选项中,将第二数据分组提升到被占用状态的决定可以基于在被占用第一数据分组被延后的时段期间(即,在气泡期间)已由第二数据分组传送的字的数目。如果第二数据分组的已传送字的该数目变得大于在被占用第一数据分组被延后之前由该被占用第一数据分组传送的字的数目,则可将第二数据分组提升到被占用状态。在一些可任选的方面,如果第二数据分组被提升到被占用状态,则第一数据分组可从其被占用状态降级。通道仲裁器126可断言行进信号118以通知解复用器108第二数据分组被占用,并且由此,被占用第二数据分组随后将被给予传输的最高优先级,或者至少与原来提供给被占用第一数据分组一样高的优先级。
另一个协议选项涉及:如果第二数据分组的所传送字的数目超过预先定义的阈值(即,在该情形中,第二数据分组的所传送字的预先定义的数目不是基于与第一数据分组的所传送字的数目的任何比较),则将第二数据分组提升到被占用状态。该阈值可以基于或等于例如解复用器108中FIFO的条目的深度或数目。这意味着,如果FIFO已满,则解复用器108将不得不开始传送其字占用FIFO的当前数据分组(即,延后的被占用第一数据分组)的头,以便避免死锁。因此,解复用器108将需要确保将尽可能快地传送当前数据分组,以便避免在第二数据分组的进一步传输期间***气泡。对于该情形,将领会到,如果FIFO大于最大数据分组大小,则仅单个数据分组将被占用。另一方面,如果FIFO小于最大数据分组大小,则两个或更多个数据分组可变得被占用。然而,如果FIFO大小大于平均数据分组长度,则两个或更多个数据分组获得被占用状态很可能是非常罕见的事件。由此,在一些方面,可基于平均数据分组长度来设计缓冲器的大小或FIFO的大小,以使两个或更多个数据分组同时获得被占用状态的可能性最小化。
将领会,各实施例包括用于执行本文所公开的过程、功能和/或算法的各种方法。例如,如图2中所解说的,一实施例可包括一种操作片上网络(例如,NoC 100)的方法(200),该方法包括:将一个或多个通道(例如,A、B、C)配置成在第一方向上携带数据分组,该第一方向包括上游端和下游端—框202;以及在隧道(例如,隧道105)上将数据分组从上游端处的上游元件传送到下游端处的下游元件,其中隧道包括对于所有通道共用的共用导线(例如,数据信号104和组帧信号106),并且隧道被配置成:基于共用信号在共用导线上传送两种或更多种格式的数据分组—框206。如虚线中所示,该方法还可包括以下进一步的步骤:在上游元件(例如,复用器102)处从通道的上游端(例如,A_u、B_u、C_u)接收数据分组—框204;在下游元件(例如,解复用器108)处从隧道接收数据—框208;以及将数据传送到通道的下游端(例如,A_d、B_d、C_d)—框210。
本领域技术人员将领会,信息和信号可使用各种不同技术和技艺中的任何一种来表示。例如,贯穿上面描述可能被述及的数据、指令、命令、信息、信号、位(比特)、码元、以及码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
此外,本领域技术人员将领会,结合本文所公开的各实施例描述的各种说明性逻辑框、模块、电路和算法步骤可被实现为电子硬件、计算机软件、或两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、块、模块、电路、以及步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体***的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本发明的范围。
结合本文公开的各实施例描述的方法、序列和/或算法可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM或者本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读写信息。在替换方案中,存储介质可以被整合到处理器。
因此,本发明的一实施例可包括实施用于片上网络拓扑内的隧穿的方法的计算机可读介质。因此,本发明并不限于所解说的示例且任何用于执行本文所描述的功能性的手段均被包括在本发明的实施例中。
尽管上述公开示出了本发明的解说性实施例,但是应当注意到,在其中可作出各种变更和修改而不会脱离如所附权利要求定义的本发明的范围。根据本文中所描述的本发明实施例的方法权利要求的功能、步骤和/或动作不必按任何特定次序来执行。此外,尽管本发明的要素可能是以单数来描述或主张权利的,但是复数也是已料想了的,除非显式地声明了限定于单数。
Claims (30)
1.一种片上网络(NoC),包括:
一个或多个通道,所述一个或多个通道被配置成:在第一方向上携带数据分组,所述第一方向包括上游端和下游端;以及
隧道,所述隧道被配置在所述上游端处的上游元件与所述下游端处的下游元件之间;
其中,所述隧道包括由所述一个或多个通道共享的共用导线,并且所述隧道被配置成:使用共用信号在所述共用导线上传送两种或更多种格式的数据分组。
2.如权利要求1所述的NoC,其特征在于,所述上游元件被配置成:从所述通道的上游端接收数据分组并将所述数据分组传送到所述隧道,并且所述下游元件被配置成:从所述隧道接收所述数据分组并将所述数据分组传送到所述通道的下游端。
3.如权利要求2所述的NoC,其特征在于,所述上游元件包括隧穿复用器,所述隧穿复用器被配置成:从两个或更多个通道的上游端接收数据分组、重新整形所述数据分组、并将所述经重新整形的数据分组传送到所述隧道上。
4.如权利要求3所述的NoC,其特征在于,经重新整形的数据分组包括关于以下各项中的一者或多者的修改:在其上传送所述数据分组的所述共用导线的数目、传输的时钟速率、或者所述传输所消耗的时钟循环的数目。
5.如权利要求3所述的NoC,其特征在于,所述上游元件进一步包括通道仲裁器,所述通道仲裁器被配置成:解决来自所述通道中的两个或更多个通道的上游端的两个或更多个数据分组之间的冲突。
6.如权利要求5所述的NoC,其特征在于,所述通道仲裁器被配置成:在每字基础上或每分组基础上解决所述两个或更多个数据分组之间的冲突。
7.如权利要求6所述的NoC,其特征在于,在每分组基础上仲裁的数据分组比在每字基础上仲裁的数据分组具有更高的优先级。
8.如权利要求2所述的NoC,其特征在于,所述下游元件包括隧穿解复用器,所述隧穿解复用器包括与所述一个或多个通道相对应的一个或多个缓冲器,所述缓冲器被配置成:存储与从所述隧道接收的所述数据分组相关的数据并将所述数据分组转发到所述通道的下游端。
9.如权利要求8所述的NoC,其特征在于,所述缓冲器被配置为先进先出(FIFO)元件。
10.如权利要求9所述的NoC,其特征在于,FIFO的深度基于在对应通道上的数据分组的平均数据分组长度。
11.如权利要求1所述的NoC,其特征在于,所述共用信号包括:用于在所述共用导线上传送属于所述数据分组的数据、控制或调试信息中的一者或多者的数据信号,以及用于控制所述数据信号在所述共用导线上的传输的组帧信号。
12.如权利要求11所述的NoC,其特征在于,在所述第一方向上传送的所述组帧信号包括以下各项中的一者或多者:用于指示包括在所述隧道上传送的一个或多个字的数据分组是否有效的有效信号、用于指示所述数据分组的最后一个字的尾信号、用于指示所述数据分组的第一个字的头信号、用于指示与所述数据分组相对应的通道的通道信号、以及用于指示所述数据分组的被占用状态的行进信号,其中,所述被占用状态表示用于指示所述隧道上的所述数据分组传输不应被中断的高优先级状态。
13.如权利要求12所述的NoC,其特征在于,除非所述下游元件变得不能够接收被占用第一数据分组的字并将其转发到对应通道的下游端,或者如果所述被占用第一数据分组在进入所述上游元件之前具有预先存在的气泡,否则所述被占用第一数据分组的传输不被中断。
14.如权利要求13所述的NoC,其特征在于,所述上游元件被配置成:当所述被占用第一数据分组的传输被中断时,传送第二数据分组的字。
15.如权利要求14所述的NoC,其特征在于,所述上游元件被配置成:如果所述第二数据分组所传送的字的数目超过预先定义的阈值或者在所述被占用第一数据分组的传输中断之前所述被占用第一数据分组所传送的字的数目,则将所述第二数据分组提升到被占用状态。
16.如权利要求15所述的NoC,其特征在于,所述预先定义的阈值基于所述下游元件中所实现的缓冲器的大小,所述缓冲器被配置成:存储从所述隧道接收的数据并将所接收到的数据转发到所述通道的下游端。
17.如权利要求11所述的NoC,其特征在于,所述组帧信号包括用于所述一个或多个通道中的每个通道的至少一个流控制信号,用于特定通道的流控制信号在第二方向上从所述下游元件被传送到所述上游元件,以指示所述下游元件是否准备好在所述特定通道上接收数据。
18.如权利要求17所述的NoC,其特征在于,所述组帧信号包括用于所述一个或多个通道中的至少一个通道的两个或更多个流控制信号,其中,所述两个或更多个流控制信号包括用于与所述第一方向或所述第二方向中的至少一者相关联的数据传输的信用。
19.一种操作片上网络(NoC)的方法,所述方法包括:
将一个或多个通道配置成在第一方向上携带数据分组,所述第一方向包括上游端和下游端;以及
在包括共用导线的隧道上将所述数据分组从所述上游端上的上游元件传送到所述下游元件上的下游元件,所述共用导线由所述一个或多个通道共享,
其中,传送所述数据分组包括:使用共用信号在所述隧道的所述共用导线上传送两种或更多种格式的数据分组。
20.如权利要求19所述的方法,其特征在于,包括:在所述上游元件处,从两个或更多个通道的上游端接收数据分组、重新整形所述数据分组、以及将所述经重新整形的数据分组传送到所述隧道上。
21.如权利要求20所述的方法,其特征在于,重新整形数据分组包括修改以下各项中的一者或多者:在其上传送所述数据分组的所述共用导线的数目、传输的时钟速率、或者所述传输所消耗的时钟循环的数目。
22.如权利要求19所述的方法,其特征在于,包括:在所述上游元件中在每字基础上或者每分组基础上解决两个或更多个数据分组之间的冲突。
23.如权利要求22所述的方法,其特征在于,在每分组基础上仲裁的数据分组比在每字基础上仲裁的数据分组具有更高的优先级。
24.如权利要求19所述的方法,其特征在于,包括:在所述下游元件处,存储与从所述隧道接收的所述数据分组相关的数据并将所述数据分组转发到所述通道的下游端。
25.如权利要求19所述的方法,其特征在于,所述共用信号包括:用于在所述共用导线上传送属于所述数据分组的数据、控制或调试信息中的一者或多者的数据信号,以及用于控制所述数据信号在所述共用导线上的传输的组帧信号。
26.如权利要求25所述的方法,其特征在于,所述组帧信号包括以下各项中的一者或多者:用于指示包括在所述隧道上传送的一个或多个字的数据分组是否有效的有效信号、用于指示所述数据分组的最后一个字的尾信号、用于指示所述数据分组的第一个字的头信号、用于指示与所述数据分组相对应的通道的通道信号、以及用于指示所述数据分组的被占用状态的行进信号,其中,所述被占用状态表示用于指示所述隧道上的所述数据分组传输不应被中断的高优先级状态。
27.如权利要求26所述的方法,其特征在于,包括:除非所述下游元件变得不能够接收被占用第一数据分组的字并将其并转发到对应通道的下游端,或者如果所述被占用第一数据分组在进入所述上游元件之前具有预先存在的气泡,否则不中断所述被占用第一数据分组的传输。
28.如权利要求25所述的方法,其特征在于,所述组帧信号包括用于所述一个或多个通道中的每个通道的至少一个流控制信号,用于特定通道的流控制信号在第二方向上从所述下游元件被传送到所述上游元件,以指示所述下游元件是否准备好在所述特定通道上接收数据。
29.一种***,包括:
用于在第一方向上携带数据分组的一个或多个通道,所述第一方向包括上游端和下游端;以及
用于将所述数据分组从所述上游端上的上游元件传送到所述下游元件上的下游元件的装置,
其中,用于传送的装置包括由所述一个或多个通道共享的共用导线,并且用于传送的装置被配置成:使用共用信号在所述共用导线上传送两种或更多种格式的数据分组。
30.如权利要求29所述的***,其特征在于,所述上游元件包括:用于从两个或更多个通道的上游端接收数据分组的装置、用于重新整形所述数据分组的装置、以及用于将经重新整形的数据分组传送到所述隧道上的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/479,728 US9608935B2 (en) | 2014-09-08 | 2014-09-08 | Tunneling within a network-on-chip topology |
US14/479,728 | 2014-09-08 | ||
PCT/US2015/046557 WO2016039972A2 (en) | 2014-09-08 | 2015-08-24 | Tunneling within a network-on-chip topology |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106716394A true CN106716394A (zh) | 2017-05-24 |
Family
ID=54035341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580046621.6A Pending CN106716394A (zh) | 2014-09-08 | 2015-08-24 | 片上网络拓扑内的隧穿 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9608935B2 (zh) |
EP (1) | EP3191974A2 (zh) |
JP (1) | JP6254331B2 (zh) |
CN (1) | CN106716394A (zh) |
WO (1) | WO2016039972A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120529A (zh) * | 2017-06-22 | 2019-01-01 | 英特尔Ip公司 | 控制和数据复用 |
CN112437021A (zh) * | 2020-11-30 | 2021-03-02 | 清华大学 | 路由控制方法、装置、路由设备及存储介质 |
CN112491715A (zh) * | 2020-11-30 | 2021-03-12 | 清华大学 | 路由装置及片上网络的路由设备 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11055657B2 (en) | 2017-03-02 | 2021-07-06 | Micron Technology, Inc. | Methods and apparatuses for determining real-time location information of RFID devices |
US10075392B1 (en) | 2017-03-02 | 2018-09-11 | Micron Technology, Inc. | Methods and apparatuses for processing multiple communications signals with a single integrated circuit chip |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852242A (zh) * | 2005-10-31 | 2006-10-25 | 华为技术有限公司 | 保障数据分组业务服务等级的方法及速率限制方法 |
CN101753388A (zh) * | 2008-11-28 | 2010-06-23 | 中国科学院微电子研究所 | 适用于多核处理器片上和片间扩展的路由及接口装置 |
US20130136129A1 (en) * | 2011-11-09 | 2013-05-30 | Stmicroelectronics (Grenoble 2) Sas | Zero-cycle router for networks on-chip |
WO2013101794A1 (en) * | 2011-12-30 | 2013-07-04 | Arteris SAS | Link between chips using virtual channels and credit based flow control |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2883116B1 (fr) | 2005-03-08 | 2007-04-13 | Commissariat Energie Atomique | Architecture de communication globalement asynchrone pour systeme sur puce. |
US8885657B2 (en) * | 2009-11-06 | 2014-11-11 | Brocade Communications Systems, Inc. | Automatic switch port selection |
FR2961048B1 (fr) * | 2010-06-03 | 2013-04-26 | Arteris Inc | Reseau sur puce avec caracteristiques de qualite-de-service |
JP2012132264A (ja) * | 2010-12-22 | 2012-07-12 | Miraku Roofsystem Co Ltd | 屋根パネル及び屋根パネルの連結構造 |
US8711867B2 (en) | 2011-08-26 | 2014-04-29 | Sonics, Inc. | Credit flow control scheme in a router with flexible link widths utilizing minimal storage |
US9680740B2 (en) * | 2013-11-08 | 2017-06-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Service multiplexing and demultiplexing using a single pseudowire service/label switched path label in a multiprotocol label switching network |
US9699079B2 (en) * | 2013-12-30 | 2017-07-04 | Netspeed Systems | Streaming bridge design with host interfaces and network on chip (NoC) layers |
-
2014
- 2014-09-08 US US14/479,728 patent/US9608935B2/en not_active Expired - Fee Related
-
2015
- 2015-08-24 CN CN201580046621.6A patent/CN106716394A/zh active Pending
- 2015-08-24 WO PCT/US2015/046557 patent/WO2016039972A2/en active Search and Examination
- 2015-08-24 JP JP2017512935A patent/JP6254331B2/ja active Active
- 2015-08-24 EP EP15757413.8A patent/EP3191974A2/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1852242A (zh) * | 2005-10-31 | 2006-10-25 | 华为技术有限公司 | 保障数据分组业务服务等级的方法及速率限制方法 |
CN101753388A (zh) * | 2008-11-28 | 2010-06-23 | 中国科学院微电子研究所 | 适用于多核处理器片上和片间扩展的路由及接口装置 |
US20130136129A1 (en) * | 2011-11-09 | 2013-05-30 | Stmicroelectronics (Grenoble 2) Sas | Zero-cycle router for networks on-chip |
WO2013101794A1 (en) * | 2011-12-30 | 2013-07-04 | Arteris SAS | Link between chips using virtual channels and credit based flow control |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120529A (zh) * | 2017-06-22 | 2019-01-01 | 英特尔Ip公司 | 控制和数据复用 |
CN109120529B (zh) * | 2017-06-22 | 2024-04-26 | 英特尔公司 | 控制和数据复用 |
CN112437021A (zh) * | 2020-11-30 | 2021-03-02 | 清华大学 | 路由控制方法、装置、路由设备及存储介质 |
CN112491715A (zh) * | 2020-11-30 | 2021-03-12 | 清华大学 | 路由装置及片上网络的路由设备 |
CN112491715B (zh) * | 2020-11-30 | 2022-06-03 | 清华大学 | 路由装置及片上网络的路由设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2017527219A (ja) | 2017-09-14 |
JP6254331B2 (ja) | 2017-12-27 |
WO2016039972A2 (en) | 2016-03-17 |
US20160072731A1 (en) | 2016-03-10 |
US9608935B2 (en) | 2017-03-28 |
WO2016039972A3 (en) | 2016-08-11 |
EP3191974A2 (en) | 2017-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106716394A (zh) | 片上网络拓扑内的隧穿 | |
EP2893678B1 (en) | Apparatus for transferring packets between interface control modules of line cards | |
US9426099B2 (en) | Router, method for controlling router, and program | |
US9276835B2 (en) | Packet segmentation with different segment sizes for a switch fabric | |
EP2898651B1 (en) | Scalable low latency multi-protocol networking device | |
EP2684321B1 (en) | Data blocking system for networks | |
US8312188B1 (en) | Systems and methods for dynamic buffer allocation | |
US8059671B2 (en) | Switching device | |
US7403525B2 (en) | Efficient routing of packet data in a scalable processing resource | |
US20040037313A1 (en) | Packet data service over hyper transport link(s) | |
US20020118692A1 (en) | Ensuring proper packet ordering in a cut-through and early-forwarding network switch | |
US20020118640A1 (en) | Dynamic selection of lowest latency path in a network switch | |
KR20190112804A (ko) | 패킷 처리 방법 및 장치 | |
KR20110039286A (ko) | 데이터 통신 시스템의 트래픽 흐름에 대해 백 프레셔 흐름 제어를 제공하는 방법 및 장치 | |
US9436642B2 (en) | Bus system for semiconductor circuit | |
US9665514B2 (en) | Integrated circuit having a bus network, and method for the integrated circuit | |
US20100232425A1 (en) | Method and Apparatus for Improving Data Transmission in Router Fabric Cards Through Pseudo-Synchronous Data Switching | |
US20140304450A1 (en) | Switching device, packet control method, and data communication system | |
US7379467B1 (en) | Scheduling store-forwarding of back-to-back multi-channel packet fragments | |
CN105991473A (zh) | 一种数据流转发方法及装置 | |
CN105530196B (zh) | 一种afdx终端***基于子虚链路的调度方法 | |
CN111740919B (zh) | 一种报负载分担方法及网络设备 | |
US20110064088A1 (en) | Communication apparatus and communication controlling method in ring network | |
JP6206497B2 (ja) | データ転送装置およびデータ転送方法 | |
KR102014118B1 (ko) | Axi 기반 네트워크 백본 시스템의 서브채널방식의 채널 관리 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170524 |
|
WD01 | Invention patent application deemed withdrawn after publication |