CN115134286A - 片上网络中的通信方法 - Google Patents

片上网络中的通信方法 Download PDF

Info

Publication number
CN115134286A
CN115134286A CN202210294446.4A CN202210294446A CN115134286A CN 115134286 A CN115134286 A CN 115134286A CN 202210294446 A CN202210294446 A CN 202210294446A CN 115134286 A CN115134286 A CN 115134286A
Authority
CN
China
Prior art keywords
node
message
flow control
control data
route
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
Application number
CN202210294446.4A
Other languages
English (en)
Inventor
萨沙·乌里希
约翰内斯·弗赖塔格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Airbus SAS
Original Assignee
Airbus SAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Airbus SAS filed Critical Airbus SAS
Publication of CN115134286A publication Critical patent/CN115134286A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/06Time-space-time switching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及片上网络中的通信方法。利用在此描述的措施,可以扩展NoC(22)的功能范围。尤其提出了一种用于三重模块冗余(TMR)的多源通信方法、一种分支通信方法和一种针对虚拟总线的方法。

Description

片上网络中的通信方法
技术领域
本发明涉及片上网络(NoC)中的通信方法。本发明还涉及实现这些通信方法的一种NoC、一种计算机程序以及一种数据载波信号。
背景技术
NoC是众所周知的并且通常指代单个微芯片内相互连接的(子)部件。这样的NoC通常基于跳(Hop),即将数据从一个参与方传输到下一个参与方,其中提供点对点(P2P)连接或点对多点(组播)连接。
如果支持,则以如下方式实现组播:将消息路由引导经过所有目标节点并且将数据卸载到这些目的地,同时将这些数据继续引导到下一个目的地。根据NoC的类型,消息路由可以被确定为是静态的或动态的并且经过源节点或者单独经过每个路由器(即节点附近的路由部件)。
发明内容
本发明的目的在于,改进NoC、尤其在其功能范围方面进行改进。
该目的通过独立权利要求的主题来实现。优选的改进方案是从属权利要求的主题。
本发明提供了一种用于在静态路由和时间敏感的NoC中进行多源通信的方法,该NoC具有多个路由器节点,这些路由器节点相互连接,使得这些路由器节点可以相互交换消息,其中该方法包括:
a)至少两个不同的源节点分别将至少两个相同的、至少包含流量控制数据、有效载荷和校验数据的消息发送到至少一个预定的接收节点,使得这些消息在预定的时间一起到达该接收节点;
b)接收节点将接收节点接收到的消息组合成包含流量控制数据、有效载荷和校验数据的组合消息,通过接收节点或者接收节点比较接收节点接收到的消息;以及
c)接收节点进一步处理组合消息,或者借助步骤b)的比较的结果进一步处理接收节点接收到的消息中的至少一个消息。
优选地,在步骤b)和步骤c)中,接收节点包括中间节点,该中间节点根据流量控制数据沿通向目标节点的路由布置,消息根据流量控制数据指向该目标节点。
优选地,在步骤b)和步骤c)中,接收节点是中间节点。
优选地,在步骤c)中,在中间节点中通过如下方式进行进一步处理,使得将在步骤b)中生成的组合消息转发到通向目标节点的路由的下一个路由段。
优选地,在步骤b)和步骤c)中,接收节点包括目标节点,消息根据流量控制数据指向该目标节点。
优选地,在步骤b)和步骤c)中,接收节点是目标节点。
优选地,在目标节点中通过如下方式进行进一步处理,使得借助校验数据对在步骤c)中生成的组合消息进行验证,以获取经校验的消息。
优选地,在目标节点中通过如下方式进行进一步处理,使得如果在步骤b)中的比较得出消息一致,则目标节点进一步处理有效载荷,优选将有效载荷传输到与目标节点相连接的功能部件。
优选地,在步骤c)中,如果应用于组合消息的校验算法的结果与校验数据一致,则将验证视为是成功的,否则将验证视为是失败的。
该方法优选包括步骤d),在该步骤中,如果在步骤c)中借助校验数据的验证是成功的,则接收节点、优选目标节点进一步处理经校验的消息,或者,如果在步骤c)中借助校验数据的验证是不成功的,则丢弃经校验的消息。
优选地,在步骤b)中,将接收到的消息通过逐位运算、优选逐位“或”运算或逐位“与”运算组合成组合消息。
优选地,在步骤a)中,至少三个不同的源节点沿可能不同的路由分别发送至少两个相同的消息,其中不同的源节点发送的消息分别是成对相同的。
优选地,在步骤b)中,接收节点将接收节点接收到的消息分别成对地进行组合,以便获取至少三个组合消息。
优选地,在步骤a)中,N个不同的源节点沿可能不同的路由分别发送(N-1)个相同的消息,其中不同的源节点发送的消息分别是成对相同的,其中N是源节点的数量。
优选地,在步骤b)中,接收节点将接收节点接收到的消息分别成对地进行组合,以便获取N个组合消息。
优选地,在步骤c)中,通过使得接收节点将组合消息分别成对地彼此进行比较来验证组合消息,其中如果比较得出多数组合消息是相同的,则将验证视为是成功的,否则将验证视为是失败的。
优选地,在步骤c)中,将进一步处理、优选验证作为在接收节点中的硬件功能来实现。
优选地,在步骤c)中,在仅成功验证了第一个接收到的组合消息的情况下就确认验证是成功的。
优选地,路由器节点、接收节点、源节点、目标节点和/或中间节点包括功能部件,该功能部件被设计成用于处理消息、优选有效载荷和校验数据。
本发明提供了一种用于在静态路由和时间敏感的NoC中进行分支通信的方法,该NoC具有多个路由器节点,这些路由器节点相互连接,使得这些路由器节点可以相互交换消息,其中该方法包括:
a)源节点将包含流量控制数据和有效载荷的消息发送到路由器节点,其中流量控制数据包含具有至少一跳的至少一个微片(Flit),至少一跳限定通向主目标节点的主路由和通向分支目标节点的至少一个分支路由;
b)路由器节点接收消息;
c)路由器节点改变在步骤b)中接收到的流量控制数据,以获取改变的流量控制数据,其实现方式为:为了获取主路由的改变的流量控制数据,将当前跳从当前微片中移除,并且如果当前跳包含分支标记,则将所有分配给该分支标记的跳从接收到的流量控制数据中移除;并且其实现方式为:为了获取分支路由的改变的流量控制数据,将所有分配给该分支标记的跳输入到分支路由的流量控制数据中;以及
d)根据在步骤b)中接收到的流量控制数据转发包含在步骤c)中改变的流量控制数据的消息,其中将消息与在步骤c)中所获取的主路由的流量控制数据一起沿主路由转发,并且其中将消息与分支路由的流量控制数据一起沿分支路由转发。
优选地,在步骤d)中,在从主路由分支之后,通过如下方式进行消息沿分支路由的转发:移除分支路由的当前跳并且将具有因此改变的流量控制数据的消息沿分支路由转发到下一个节点。
本发明提供了一种用于在静态路由和时间敏感的NoC中运行虚拟总线系统的方法,该NoC具有多个路由器节点,这些路由器节点相互连接,使得这些路由器节点可以相互交换消息,其中该方法包括:
a)在NoC中为每个源节点限定单独的时隙,使得这些时隙相对于彼此时移了一定数量的时钟周期,该数量与消息从第一源节点发送到第二源节点所需的时钟周期的数量相对应,其中使每个源节点仅能够在其相应的时隙中发送消息,以提供虚拟总线;
b)仅在其中一个源节点的时隙之时没有另一源节点的消息经过该源节点的情况下,该源节点才将消息发送给目标节点。
优选地,每个源节点都具有标志,该标志说明相应的源节点可以发送消息。
优选地,在源节点发送消息之后,删除源节点的标志。
优选地,如果目标节点(优选在预定的时间内)没有获取到任何消息,则目标节点向源节点发出Magic消息,其中该Magic消息促使每个源节点重新设置其被删除的标志。
优选地,在步骤a)中限定时隙,使得将一个源节点分配给多个虚拟总线,其中以交织模式运行虚拟总线。
本发明提供了一种NoC,该NoC具有多个路由器节点,这些路由器节点相互连接,使得这些路由器节点可以相互交换消息,其中NoC被配置成根据优选的方法来运行。
本发明提供了一种计算机程序,该计算机程序包括指令,这些指令在由优选的NoC执行时促使该计算机程序执行优选方法中的一个方法。
本发明提供了一种传输优选的计算机程序的数据载波信号。
本发明提供了一种用于在NoC中使用的流量控制数据的流量控制数据结构,其中流量控制数据具有带跳的微片,其中跳具有主路由信息并且具有带有相应所分配的跳的分支标记,其中主路由信息促使路由器节点将消息沿主路由转发到下一个跳,并且其中分支标记促使路由器节点将消息沿从主路由中分支出来的分支路由转发到下一个跳。
一个构思是通过多源通信来改进NoC的功能范围。
在此描述的多源通信可以实现将同一消息从至少两个源发送到至少一个目的地。数据传输包含(两个)消息的组合或混合以及在目标节点处的有效性检查或一致性检查。“严格时序网络调度(strictly timed network scheduling)”可以实现使源在某一时间点发送消息并且借助路由发出,使得多个消息在预定的时间点到达预定的路由器。
该路由器将这些消息组合成唯一的消息,该消息被转发到共同的下一个路由段(即路由器的同一输出端)。消息的组合例如可以通过逐位“或”运算(“与”运算亦可)来进行并且该组合包含消息头、有效载荷和附加的校验和。接收器通过对校验和进行评估来校验组合消息的正确性。
多源技术的目的在于减少冗余信息的生成和校验的印迹(Footprint),例如由安全关键型系统所使用的冗余信息的生成和校验。可以借助于三个发射器实现三重模块冗余(英语:triple-modular-redundancy,TMR),这些发射器分别发出两个消息,这些消息进而组合成三个消息。如果将校验和校验实现为自动的硬件功能,则接收节点仅需要使用第一个正确接收到的消息,因为这已经表示:这两个相应的发射器生成了同一消息。
另一方面,如果三个独立的消息到达了接收器节点(即,无多源功能),则接收器节点可以精确地比较这三个消息,以识别这些消息中的哪些消息是相同的,从而执行标准投票。
任选地,也可以将TMR投票器直接集成在所有或选出的路由器节点中。TMR投票可以按照已知的3取2方法来实施,从而将这三个消息组合成唯一的消息。因此该/这些接收器仅获取一个消息。
另一构思在于,改进在分支通信方面的功能性。
NoC可以使用路由,其中消息的真实路由被存储在消息头中。在这种情况下,头包含关于所有跳的信息,即,在下一个路由器处走哪条路(N、O、S、W、本地端口)。通常以队列提供这种信息,在一个跳的过程中将第一个元素从该队列中移除。对应地,从现在起下一个元素是下一个跳的相关信息。这个队列中的最后一个元素包含标记,该标记表明这是最后一个元素。
如果支持,组播通常以如下方式来实现,即,消息路由按次序经过所有目标并且将消息传递到多个路由器的本地端口。
提出了一种可以从主消息路由进行额外侧向分支的方法。这个方法可以通过跳来实现,这些跳包含“分支”标记和有多少跳与侧分支相关的信息。将相关的跳数据传送到分支中(并且从主队列中移除),而那些在分支跳之后的跳继续描述主路由。
一种实现方式可以基于路由队列,该路由队列存储了多个网络微片(在一个时间步骤中由NoC传输的小数据范围)。这样的微片可以包含f个跳和N个微片,它们描述包含分支在内的完整路由。如果跳b标记了一个分支,则在微片中剩余的跳描述该分支并且所提到的微片仅被传送至该分支。(分支)路由的结束在特定的微片中显示,即通过f限制分支的长度并且在此实现方式中不可能有进一步的子分支。
主路由的进一步路由通过以下微片延续,该微片朝两个方向,即,第二个和主路由发送(剩余消息也一样)。主路由的其他分支可以以相同的类型实现。如下表所示,主段可以具有跳1至跳5、带有三个跳6a至跳8a的分支、之后的带有跳6m的主段、带有跳7b和跳8b的另一分支以及带有跳7m至跳11m的主路由的延续。
Figure BDA0003562736250000081
还有一个构思是设置虚拟总线。
静态路由的/调度的网络有如下特征:不能在最早可能的时间点传输消息,而是必须等待对应的时隙。这(与时间正确的实施是首要任务的时间关键型应用相比)可能会降低最佳性能所需的应用的吞吐量。为了在静态调度路由的NoC上实现这种尽力而为型通信(Best-Effort-Kommunikation)或应用,可以使用虚拟总线。
这样的虚拟总线可以提供从多个源到一个或多个目标的周期性地调度的通信时隙。调度周期越短,吞吐量就越高并且对其他通信量(例如关键通信量)的影响就越大。根据源节点的数量和这些源节点的通信量要求可以确定合适的调度周期。对节点(即其上运行的应用)的分析可以有助于识别吞吐量/调度要求。虚拟总线可以将多个源例如与外部的存储器相连接。
可以通过对这些源进行单独的发送操作来限定虚拟总线,这些源移位了一定数量的时钟周期,该数量是将消息从第一节点到第二节点、从第二节点到第三节点(以此类推)所需要的数量。如果节点想要将消息发送到虚拟总线,则该节点校验路由器的所输入的消息(来自对应的输入端口)或对应的输出端口。这意味着,源校验在确定的发送时间之时是否有消息经过,例如从北向南。如果没有消息,则相应的源可以发送其消息。因为上一个源的时隙已经失效,因此该源无法在该时隙期间发出任何消息,从而可以避免冲突。
如果使用该方案,则包括基于优先级的虚拟总线仲裁:距离目标节点最远的源节点具有最高优先级,距离目标节点最近的源节点具有最低优先级。
利用源路由器节点和目标路由器节点中的附加功能,还可以实现轮询仲裁(Round-Robin-Arbitration):所有源都具有标志,当虚拟总线对于这些源可用时(如上所述),该标志允许这些源发送消息。如果一个源发送了它的消息(如果该源想要发送消息的话),则该标志被删除,即该源不再能够发送消息。目标节点观察虚拟总线并且在没有收到任何消息的情况下,目标节点在单独的路由时隙中向所有源发送“Magic”消息。该消息允许源重新设置标记,从而可以再次发送消息。在大多数情况下,该单独的时隙对于从原始目标到初始源的通信一直都是可用的,以便向请求方发送响应。
第三种仲裁方案“时分多址”(TMDA)通过为通向目标的每个源提供独立的时隙而可以在没有虚拟总线的情况下实现。
通过以交织的方式来调度多个虚拟总线,可以实现访问方案的组合或同一策略采用不同参数的组合。例如使用两个交织的虚拟总线可以实现源A、源B和源C访问存储器的场景,在该场景中,A和B需要比C更高的吞吐量。第一虚拟总线涉及A、B和C,而第二虚拟总线仅涉及A和B。因此,A和B平均获得的带宽约是C的两倍。
如果例如需要为A和B提供最小带宽,则对于A-B总线可以使用轮询策略,同时对于A-B-C总线使用基于优先级的策略。因此,A和B可以各自获得的最小份额为25%,同时剩余的50%则根据优先级提供给所有三个源。可以通过其他类型的虚拟总线来实现进一步的精细调整。
附图说明
在下文借助示意性的附图来更详细地阐述实施例。在附图中:
图1示出了具有NoC的微芯片的示例;
图2示出了NoC以多源通信的运行下的示例;
图3示出了NoC以分支通信的运行下的示例;以及
图4示出了NoC以虚拟总线的运行下的示例。
具体实施方式
随后参考图1,该图示意性地示出了微芯片10。微芯片10具有多个功能单元B0、…、B15。每个功能单元B0、…、B15都包括路由器部件12和功能部件14。如图1所示,多个功能部件14(在此例如十六个功能部件14)可以组合成一个功能块16。微芯片10可以具有多个这样的功能块16。
路由器部件12可以接收和发送消息。路由器部件12彼此连接。此外,路由器部件12被配置成将针对连接到路由器部件14的功能部件14而确定的消息转发到该功能部件以进一步处理。
路由器部件12具有至少两个接口,即一个部件接口18和一个或多个路由接口20。部件接口18与功能部件14相连接。每个路由接口20都与另一路由部件12的路由接口20相连接。
此外,微芯片10被设计成使得其包含NoC 22,通过该NoC,功能单元B0、…、B15可以借助于其路由器部件12相互连接。NoC 22被配置为静态路由时间敏感网络(英语:“statically routed time-sensitive network”,在此也被简称为TSN)。
每个路由器部件12都构成NoC 22的路由器节点24。每个部件接口18都构成本地端口25。每个路由接口20也可以用方位(N、E、S、W)来表示,该方位说明:该路由接口在哪个方向上与另一路由器节点24相连接。
例如“N”表示与图1中向上的路由器节点24相连接的路由接口20。对应地,“E”、“S”和“W”表示向右、向下和向左的方向。需要注意的是,如在此所使用的方位仅用于说明目的并且应该简化以下信息:消息、数据等等向哪些方向发送或转发。
如未给出其他信息,则微芯片10和NoC 22以如上所述的方式设计,而与下面描述的运行类型/通信类型无关。
参考图2,阐述了如何能够在NoC 22中实现多源通信。
在多源通信中,将相同的消息26从至少两个源节点28藉由中间节点30发送到目标节点32。每个消息26都包含流量控制数据、有效载荷和校验和。在使用NoC 22的特性的情况下,将相同的消息26从每个源节点28以如下方式发出,使得消息26在相同的预定的时间点到达预定的中间节点30。
中间节点30借助于逐位“或”运算或逐位“与”运算将这两个消息26组合成组合消息34。中间节点30将组合消息34藉由下一个路由段36(在必要时,藉由其他中间节点38)发送到目标节点32。其他中间节点38仅传送组合消息34并且不对该消息实施任何操作。
目标节点32接收组合消息34,并且功能部件14借助校验和校验该组合消息。如果基于校验和的验证成功,则功能部件14进一步处理至少有效载荷。如果基于校验和的验证失败,则丢弃消息34。失败可以藉由返回信道传输到源节点28。
在一个变体中,至少三个源节点28可以分别发出至少两个相同的消息26,这些消息成对地在中间节点38中组合成总共至少三个组合消息34。随后,在必要时藉由不同的路由将组合消息34发送到目标节点32。功能部件14进而借助校验和来校验第一消息。如果这三个组合消息34之一验证成功,则验证总体上是成功的,因为这说明两个不相关的源节点28发出了同一消息26。
在另一变体中,三个源节点28可以将相同的消息26发送到目标节点32。将这些消息26在目标节点32中进行相互比较,其中如果三个消息中的两个消息一致,则将验证视为是成功的。
参考图3,阐述了如何能够在NoC 22中实现分支通信。
源节点28应该将消息26发送到多个目标节点32。源节点28和目标节点32中的一个目标节点通过主路由40相连接。这个目标节点32也被称为主目标节点33。其余目标节点32通过分支路由42与源节点28相连接。这些目标节点32也被称为分支目标节点35。
消息26包含流量控制数据44,在这些流量控制数据中限定主路由40和分支路由42。在每一跳处,以如下方式改变指出消息26下一次传输到节点30、32中的哪个节点的流量控制数据44:
将当前跳从流量控制数据44中移除。如果存在指出分支路由42应当从主路由40中分支出来的分支标记,则将分支路由42的所有跳从主路由40的流量控制数据44中移除。将消息26与改变的流量控制数据44一起沿主路由40发送并且与分支路由42的流量控制数据44一起沿分支路由42发送。
流量控制数据44包括带有四个跳的微片,如下所述。在跳1和跳2处分别具有主路由的支路。
Figure BDA0003562736250000131
源节点28(B4)首先朝方向E发出消息26。中间节点30(B5)接收消息26并且借助流量控制数据44继续分发消息26。在跳1处设有朝向第一分支46的支路和朝方向E的转发线路。
中间节点30(B5)借助以下流量控制数据44将消息26朝方向E沿主路由40转发到中间节点30(B6):
Figure BDA0003562736250000132
此外,中间节点30将消息26的拷贝和以下流量控制数据44朝方向S沿第一分支46转发到中间节点30(B9):
Figure BDA0003562736250000141
最终,中间节点30(B9)将消息26朝方向S沿第一分支46转发到目标节点32(B13),该目标节点随后将消息藉由其本地端口25输出到功能部件14。
中间节点30(B6)相应地对待并且借助以下流量控制数据44将消息26也朝方向E沿主路由40发送到中间节点30(B7):
Figure BDA0003562736250000142
中间节点30(B6)还借助以下流量控制数据44将消息26朝方向N沿第二分支48发送到目标节点32(B2)。
Figure BDA0003562736250000143
中间节点30(B7)最终借助以下流量控制数据44将消息26转发到目标节点32(B11):
Figure BDA0003562736250000144
因此,消息26从源节点28(B4)路由到了三个目标节点32(B6、B11、B13),其方式为:消息26沿主路由40从源节点28(B4)发送到了主目标节点33(B11),同时消息26还沿分支46、48路由到了分支目标节点35(B6、B13)。
与常规的组播传输不同,消息26并非被路由相继经过所有的目标节点32,而是在必要时以从主路由40分支的方式直接被引导到目标节点32,这些目标节点分别是相应路由的最后一个节点。
参考图4,阐述了如何能够在NoC 22中实现虚拟总线。在这个NoC 22中还集成有存储节点50。因此,存储节点50同时也是目标节点32。
NoC 22被配置成时间敏感的,使得提供多个预定的时隙,以对源节点28单独地进行发送操作。这些时隙相对于彼此时移了NoC 22的一定数量的时钟周期,该数量与消息26从第一节点52(B1)到第二节点54(B9)、从第二节点54(B9)第三节点56(B13)(以此类推)所需的时钟周期的数量相对应。
此外,为了简单起见,假设消息26从一个节点到下一个节点刚好需要一个时钟周期。然而也可以是多个时钟周期。
下面示例性地借助两个源节点28(B1、B9)来说明虚拟总线的工作方式,这些源节点将数据发送到存储节点50。
源节点28(B1)在其时隙中朝存储节点50的方向发出消息。藉由中间节点30(B5)将消息引导到源节点28(B9)。这个源节点28(B9)校验在其时隙之时前一个源节点28(B1)的消息是否正在输入或输出。如果不是这种情况,则源节点28(B9)可以朝存储节点50的方向发送其消息。因为另一源节点28(B1)的时隙已经失效,因此该源节点无法发出消息并且可以避免消息的冲突。
随后藉由中间节点30(B13)将消息转发到目标节点32(在此:存储节点50)并且从该目标节点藉由其本地端口25将消息输出到真实的存储器。
在一个轮询变体中,源节点28分别获取标志,该标志说明相应的源节点28允许发送消息。如果源节点28在其时隙中发送了消息,则该标志会被删除。因此相应的源节点28不再能够发送消息。
目标节点32藉由返回路由将Magic消息发回到所有源节点28,其中Magic消息促使源节点28重新设置其标志。
在一个时分多址变体(TDMA变体)中,为通向目标节点32的每个源节点28实现单独的时隙。为此,不一定需要虚拟总线。
还可以组合上述变体,以调节源节点28的可用带宽。
利用在此描述的措施,可以扩展NoC(22)的功能范围。尤其提出了一种用于三重模块冗余(TMR)的多源通信方法、一种分支通信方法和一种针对虚拟总线的方法。
附图标记清单
10 微芯片
12 路由器部件
14 功能部件
16 功能块
18 部件接口
20 路由接口
22 NoC(片上网络)
24 路由器节点
25 本地端口
26 消息
28 源节点
30 中间节点
32 目标节点
33 主目标节点
34 组合消息
35 分支目标节点
36 路由段
38 其他中间节点
40 主路由
42 分支路由
44 流量控制数据
46 第一分支
48 第二分支
50 存储节点
52 第一节点
54 第二节点
56 第三节点
B0、…、B15 功能单元

Claims (14)

1.一种用于在静态路由和时间敏感的NoC(22)中进行多源通信的方法,所述NoC具有多个路由器节点(24),所述路由器节点相互连接,使得所述路由器节点(24)能够相互交换消息(26),其中所述方法包括:
a)至少两个不同的源节点(28)分别将至少两个相同的、至少包含流量控制数据(44)、有效载荷和校验数据的消息发送到至少一个预定的接收节点(30,32),使得所述消息(26)在预定的时间一起到达所述接收节点(30,32);
b)所述接收节点(30,32)将所述接收节点(30,32)接收到的消息(26)组合成包含流量控制数据(44)、有效载荷和校验数据的组合消息(34),通过所述接收节点(30,32)或者所述接收节点(30,32)比较所述接收节点(30,32)接收到的消息(26);以及
c)所述接收节点(30,32)进一步处理所述组合消息(34),或者借助步骤b)的所述比较的结果进一步处理所述接收节点(30,32)接收到的消息(26)中的至少一个消息。
2.根据权利要求1所述的方法,其特征在于,在所述步骤b)和所述步骤c)中,所述接收节点包括中间节点(30),所述中间节点根据所述流量控制数据(44)沿通向目标节点(32)的路由布置,所述消息(26)根据所述流量控制数据(44)指向所述目标节点,其中在步骤c)中,在所述中间节点(30)中进行所述进一步处理,使得将在步骤b)中生成的所述组合消息(34)转发到通向所述目标节点(32)的路由的下一个路由段(36)。
3.根据前述权利要求之一所述的方法,其特征在于,在所述步骤b)和所述步骤c)中,所述接收节点包括目标节点(32),所述消息(26)根据所述流量控制数据(44)指向所述目标节点,
其中在所述目标节点(32)中进行所述进一步处理,使得借助所述校验数据对在步骤c)中生成的所述组合消息(34)进行验证,以获取经校验的消息;和/或
其中在所述目标节点(32)中进行所述进一步处理,使得如果在步骤b)中的所述比较得出所述消息(26)一致,则所述目标节点(32)进一步处理所述有效载荷,优选将所述有效载荷传输到与所述目标节点(32)相连接的功能部件(14)。
4.根据前述权利要求之一所述的方法,其特征在于步骤d),在所述步骤中,如果在步骤c)中借助所述校验数据的验证是成功的,则所述接收节点(30,32)、优选所述目标节点(32)进一步处理经校验的消息,或者,如果在步骤c)中借助所述校验数据的验证是不成功的,则丢弃经校验的消息。
5.根据前述权利要求之一所述的方法,其特征在于,在步骤b)中,将接收到的消息(26)通过逐位运算、优选逐位“或”运算或逐位“与”运算组合成所述组合消息(34)。
6.一种用于在静态路由和时间敏感的NoC(22)中进行分支通信的方法,所述NoC具有多个路由器节点(24),所述路由器节点相互连接,使得所述路由器节点(24)能够相互交换消息(26),其中所述方法包括:
a)源节点(28)将包含流量控制数据(44)和有效载荷的消息(26)发送到路由器节点(24),其中所述流量控制数据(44)包含具有至少一跳的至少一个微片,所述至少一跳限定通向主目标节点(33)的主路由(40)和通向分支目标节点(35)的至少一个分支路由(42);
b)所述路由器节点(24)接收所述消息(26);
c)所述路由器节点(24)改变在步骤b)中接收到的流量控制数据(44),以获取改变的流量控制数据(44),其实现方式为:为了获取所述主路由(40)的改变的流量控制数据(44),将当前跳从当前微片中移除,并且如果所述当前跳包含分支标记,则将所有分配给所述分支标记的跳从接收到的流量控制数据(44)中移除;并且其实现方式为:为了获取所述分支路由(42)的改变的流量控制数据(44),将所有分配给所述分支标记的跳输入到所述分支路由(42)的流量控制数据(44)中;以及
d)根据在步骤b)中接收到的流量控制数据(44),转发包含在步骤c)中改变的流量控制数据(44)的所述消息(26),其中将所述消息(26)与在步骤c)中所获取的所述主路由(40)的流量控制数据(44)一起沿所述主路由(40)转发,并且其中将所述消息(26)与所述分支路由(42)的流量控制数据(44)一起沿所述分支路由(42)转发。
7.根据权利要求6所述的方法,其中在步骤d)中,在从所述主路由(40)分支之后通过以下方式进行所述消息(26)沿所述分支路由(42)的转发,使得移除所述分支路由(42)的当前跳并且将具有因此改变的流量控制数据(44)的消息(26)沿所述分支路由(42)转发到下一个节点。
8.一种用于在静态路由和时间敏感的NoC(22)中运行虚拟总线系统的方法,所述NoC具有多个路由器节点(24),所述路由器节点相互连接,使得所述路由器节点(24)能够实现相互交换消息(26),其中所述方法包括:
a)在所述NoC(22)中,为每个源节点(28)限定单独的时隙,使得所述时隙相对于彼此时移了一定数量的时钟周期,所述数量与所述消息(26)从第一源节点发送到第二源节点(28)所需的时钟周期的数量相对应,其中使每个源节点(28)仅能够在其相应的时隙中发送消息,以提供虚拟总线;
b)仅在其中一个源节点(28)的时隙之时没有另一源节点(28)的消息(26)经过所述源节点(28)时,所述源节点(28)才将消息(26)发送到所述目标节点(32)。
9.根据权利要求8所述的方法,其特征在于,每个源节点(28)都具有标志,所述标志说明相应的源节点(28)能够发送消息(26),其中在所述源节点(28)发送所述消息(26)之后,将所述源节点的标志删除,其中如果所述目标节点(32)在预定的时间内没有获取到任何消息(26),则所述目标节点(32)将Magic消息发送到所述源节点(28),其中所述Magic消息促使每个源节点(28)重新设置其被删除的标志。
10.根据权利要求8或9之一所述的方法,其特征在于,在步骤a)中限定所述时隙,使得将一个源节点(28)分配给多个虚拟总线,其中以交织模式运行所述虚拟总线。
11.一种NoC(22),所述NoC具有多个路由器节点(24),所述路由器节点相互连接,使得所述路由器节点(24)能够相互交换消息(26),其中所述NoC(22)被配置成根据前述权利要求之一所述的方法来运行。
12.一种计算机程序,所述计算机程序包括指令,所述指令在由根据权利要求11所述的NoC(22)执行时促使所述计算机程序执行根据权利要求1至10之一所述的方法中的一个方法。
13.一种传输根据权利要求12所述的计算机程序的数据载波信号。
14.一种用于在NoC(22)中使用的流量控制数据(44)的流量控制数据结构,其中所述流量控制数据(44)具有带跳的微片,其中所述跳具有主路由信息并且具有带有相应所分配的跳的分支标记,其中所述主路由信息促使路由器节点(24)将消息(26)沿主路由(40)转发到下一个跳,并且其中所述分支标记促使路由器节点(24)将所述消息(26)沿从所述主路由(40)中分支出来的分支路由(42)转发到下一个跳。
CN202210294446.4A 2021-03-25 2022-03-24 片上网络中的通信方法 Pending CN115134286A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102021107484.3 2021-03-25
DE102021107484.3A DE102021107484A1 (de) 2021-03-25 2021-03-25 Kommunikationsverfahren in einem Network-on-Chip

Publications (1)

Publication Number Publication Date
CN115134286A true CN115134286A (zh) 2022-09-30

Family

ID=80933503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210294446.4A Pending CN115134286A (zh) 2021-03-25 2022-03-24 片上网络中的通信方法

Country Status (4)

Country Link
US (1) US20220311699A1 (zh)
EP (1) EP4064644A3 (zh)
CN (1) CN115134286A (zh)
DE (1) DE102021107484A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240184927A1 (en) * 2022-12-02 2024-06-06 Nvidia Corporation Epoch-based mechanism for providing data integrity and reliability in a messaging system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009140707A1 (en) * 2008-05-21 2009-11-26 Technische Universität Wien Cross-domain soc architecture for dependable embedded applications
US20190089619A1 (en) * 2017-09-21 2019-03-21 Qualcomm Incorporated Self-test engine for network on chip
US11797667B2 (en) 2019-06-28 2023-10-24 University Of Florida Research Foundation, Incorporated Real-time detection and localization of DoS attacks in NoC based SoC architectures
US20230041130A1 (en) * 2019-08-02 2023-02-09 Tenstorrent Inc. Overlay layer for network of processor cores
US11245643B2 (en) * 2020-05-20 2022-02-08 Tenstorrent Inc. Speculative resource allocation for routing on interconnect fabrics
US12035334B2 (en) * 2020-08-07 2024-07-09 Qualcomm Incorporated Interaction of multicast band width part (BWP) with multiple BWP

Also Published As

Publication number Publication date
DE102021107484A1 (de) 2022-09-29
EP4064644A2 (de) 2022-09-28
US20220311699A1 (en) 2022-09-29
EP4064644A3 (de) 2023-02-22

Similar Documents

Publication Publication Date Title
US11640362B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
US7733841B2 (en) Vehicle network with time slotted access and method
US7272496B2 (en) Vehicle network and method of communicating data packets in a vehicle network
KR100627445B1 (ko) 예약 기반 미디어 액세스 제어기 및 광통신망
US9596191B2 (en) Network relay system and network relay device
EP1841152A1 (en) System and method for redundant switched communications
US9319310B2 (en) Distributed switchless interconnect
JP2016501475A (ja) 受動相互接続及び分散型スイッチレススイッチングを行うルータ
CN115134286A (zh) 片上网络中的通信方法
US9755857B2 (en) Avionic ethernet network and method of transmitting blocks of data in the network
EP2966819B1 (en) Method and apparatus for forwarding traffic of switching system
US6452926B1 (en) Reliable and robust atm-switch
JP2015536621A (ja) 受動接続性光学モジュール
US20060077974A1 (en) Return path derivation in packet-switched networks
Xu et al. Relay buffer assisted DTN bundle protocol design via network coding
KR20060010834A (ko) 차량 네트워크에서 데이터 패킷들을 통신하기 위한 차량네트워크 및 방법
US7382721B2 (en) Nodal computer network
JP4190707B2 (ja) 伝送ユニット
EP3166261A1 (en) A network for an aircraft or spacecraft, and an aircraft or spacecraft including such network

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