CN102035723A - 一种片上网络路由及实现方法 - Google Patents

一种片上网络路由及实现方法 Download PDF

Info

Publication number
CN102035723A
CN102035723A CN200910235231XA CN200910235231A CN102035723A CN 102035723 A CN102035723 A CN 102035723A CN 200910235231X A CN200910235231X A CN 200910235231XA CN 200910235231 A CN200910235231 A CN 200910235231A CN 102035723 A CN102035723 A CN 102035723A
Authority
CN
China
Prior art keywords
node
buffer module
output buffer
chip
network
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
CN200910235231XA
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN200910235231XA priority Critical patent/CN102035723A/zh
Publication of CN102035723A publication Critical patent/CN102035723A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种片上网络路由及实现方法,其中的片上路由具体包括:一个交叉开关,包括多个端口;一个寻径单元,用于确定当前数据传输的路径;其中,所述片上网络路由的每个端口与本地结点或者其它路由结点相连,每个端口包括两个数据通道,分别为输入通道和输出通道;仅在所述输出通道上设置有输出缓冲模块,用于存储输入通道传入的数据。本发明能够在很大程度上降低数据传输过程中的时间开销以及功耗,其路由结构简单,并且与网络拓扑结构无关,具有很好的结构扩展性与规模扩展性,能很好地适应未来大规模/超大规模片上多处理器与片上***片上互连的需要。

Description

一种片上网络路由及实现方法
技术领域
本发明涉及片上多处理器与片上***技术领域,特别是涉及一种适用于多处理器与***中的片上网络路由及实现方法。
背景技术
随着计算机与微电子技术的不断发展,片上多处理器(CMP,Chip Multiprocessor)与片上***(SoC,System on Chip)逐渐成为主流,而且,随着器件、工艺和应用技术的不断发展,片上处理器中处理器核的数目和片上***中子***的数量必将进一步增加,从目前的几个、十几个发展到几十个甚至更多,于是,片上多处理器中处理器核以及处理器中其它节点(如cache)之间、片上***中各个子***之间的互连机制也即片上网络,成为影响处理器、***性能的重要因素。
对于片上网络的设计,低成本(包括芯片面积和功耗两个方面)、高速度、高带宽是需要努力追求的目标,但由于这三个目标之间的相互影响和制约,往往不能同时实现。一般而言,影响片上网络这三个目标的最主要的因素就是网络的拓扑结构、通信协议和路由机制。经研究表明,片上网络中所有用于缓冲数据的数据缓冲器的大小基本上决定了片上网络所需芯片面积的大小,而实际通信中主要的功耗就恰好发生在对那些数据缓冲器的写入和读出过程中。由于片上网络中数据缓冲器往往设置在路由机制中,因此,网络路由的具体实现方法很大程度上决定了片上网络所需要的芯片面积和使用中所需要的功耗,同时,基于某种通信协议的路由机制也直接影响着网络传输的速度和带宽。
由此可见,在片上网络的设计与实现中,路由的设计与实现具有非常重要的地位。但是,目前的片上网络路由一般是直接从片外网络路由“移植”而来,往往具有功耗大、芯片面积大、传输速度慢、网络规模小等缺点,不能完全满足片上多处理器和片上***未来发展的要求。
总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够提供一种适用于片上多处理器和片上***的网络路由设计和实现方案,用以克服现有网络路由功耗大、芯片面积大、传输速度慢、网络规模小的缺陷。
发明内容
本发明所要解决的技术问题是提供一种适用于多处理器与***中的低功耗、高速度、易扩展的片上网络路由及实现方法。
为了解决上述问题,本发明公开了一种片上网络路由,其特征在于,包括:
一个交叉开关,包括多个端口;
一个寻径单元,用于确定当前数据传输的路径;
其中,
所述片上网络路由的每个端口与本地结点或者其它路由结点相连,每个端口包括两个数据通道,分别为输入通道和输出通道;
仅在所述输出通道上设置有输出缓冲模块,用于存储输入通道传入的数据。
优选的,仅在与其它路由结点连接的输出通道上设置有输出缓冲模块。
优选的,所述片上网络路由还包括:
仲裁单元,用于在有多个输入通道请求使用同一输出通道时,决定该输出通道的所有权归属;
所述仲裁单元的数量与输出通道数量一致。
本发明实施例还公开了一种片上网络路由的实现方法,包括:
接收本地结点的针对某个数据包的通信请求;
将该数据包进行多次跳跃,传输到目的结点,每次跳跃涉及,将该数据包从当前结点传输到下一跳结点,每次跳跃的过程包括:
根据当前结点和目的结点,进行寻径操作,找到再下一跳路由结点地址,并确定下一跳输出缓冲模块地址;
将所述数据包从当前结点传输到下一跳输出缓冲模块。
优选的,所述当前结点包括本地结点和路由结点。
优选的,所述每次跳跃的步骤包括:
在当前结点为本地结点时,进行寻径操作,找到下一跳路由结点地址和再下一跳路由结点地址,并确定本地路由结点的输出缓冲模块地址和下一跳输出缓冲模块地址;
将所述数据包从当前结点经本地路由结点的该输出缓冲模块,传输到该下一跳输出缓冲模块。
优选的,所述每次跳跃的步骤包括:
在当前结点为路由结点时,通过寻径操作,找到再下一跳路由结点地址,并确定下一跳输出缓冲模块地址;
将所述数据包从该路由结点的输出缓冲模块传输到下一跳输出缓冲模块。
与现有技术相比,本发明具有以下优点:
相对于现有技术中,在输入通道和输出通道均设有缓冲,本发明仅在输出通道上设有缓冲,一方面可以减少对缓冲数据的读/写次数,因此,能够提高数据传输的速度,降低传输过程中的功耗;另一方面,可以减化片上网络路由的硬件结构,从而减少片上网络对芯片资源的占用。
此外,无论面对的是同构或异构片上网络,也无论某路由结点所连接的对象是处于逻辑上哪一层,本发明的片上网络路由均可一视同仁地进行处理,因此,能够非常容易进行网络的拓扑结构扩展,同时便于网络向大规模、多维度扩展。
附图说明
图1是本发明一种片上网络路由实施例1的结构图;
图2是本发明一种片上网络路由实施例2的结构图;
图3是本发明一种Mesh网路由结点间以及与本地结点连接的示意图;
图4是本发明一种输出缓冲模块的示意图;
图5是本发明一种片上网络路由实施例3的结构图;
图6是本发明一种片上网络路由的实现方法流程图;
图7是本发明一种独片数据包传输示例的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
一般来说,片上网络路由需要实现两个基本功能,一个是寻径,另一个是数据转发。当网络拓扑结构确定以后,这里的寻径也即根据数据的当前位置信息和目的位置信息,来确定数据传输的路径。而数据转发则需要根据寻径结果,将数据从当前段网络链路传送到下一段网络链路上。
传统的数据转发方式,首先在转发之前将数据缓冲到当前结点的入端缓冲区,再将数据经过当前结点传送到当前结点的出端缓冲区,然后将数据经过链路传输送到下一跳结点的入端缓冲区,最后才将数据经过下一跳结点传送到下一跳结点的出端缓冲区。这个过程相当于把数据传输的操作分解成:当前结点的入端缓冲区→当前结点→当前结点的出端缓冲区→链路→下一跳结点的入端缓冲区→下一跳结点→下一跳结点的出端缓冲区。上述数据转发方式,在每个结点的入端进行数据缓冲的目的主要是为了保持链路上数据传输的稳定性。
本发明的核心构思之一在于,如果每次在进行数据传输操作开始之前将当前结点内部的交叉开关置好,使得来自上一跳的出端缓冲区和当前结点的某出端缓冲区之间建立起稳定的通路,那么只需将数据在出端进行缓冲,数据就能快速、稳定地从上一跳出端缓冲区传递到当前出端缓冲区。
参照图1,示出了本发明一种片上网络路由实施例1的结构图,具体可以包括:
一个交叉开关11,包括多个端口101;
一个寻径单元12,用于确定当前数据传输的路径;
其中,
所述片上网络路由的每个端口101与本地结点或者其它路由结点相连,每个端口101包括两个数据通道,分别为输入通道1011和输出通道1012;
仅在所述输出通道1012上设置有输出缓冲模块10121,用于存储输入通道传入的数据。
本发明实施例仅在输出通道上设置有输出缓冲模块10121,这样,对于本地路由结点而言,每一次要接收的数据都会被保存在上一跳路由结点的输出缓冲模块,由于本次数据传输的寻径操作已经在上一跳路由结点完成,所以,本地路由结点已经知道本次数据传输需要将交叉开关设置到什么位置。因此,本地路由结点只需依据上一跳的寻径结果,将交叉开关设置到正确的位置,就能使得上一跳路由结点的输出缓冲模块和本地路由结点的输出缓冲模块之间建立起稳定的通路,从而能够保证数据传输的稳定性。
首先,上述过程相当于把数据传输的操作分解成:上一跳路由结点的输出缓冲模块→链路→本地路由结点的输出缓冲模块,因此,相对于现有技术中,在输入通道和输出通道均进行数据缓冲,本发明只在输出通道进行缓冲,能够减少对缓冲数据的读/写次数,因此,能够提高数据传输的速度,降低传输过程中的功耗。
此外,本地路由结点还可以依据上一跳寻径操作得到的当前位置信息和目的位置信息,通过本地寻径操作计算出下一跳位置信息,因此,本地寻径操作和上一跳到本地的数据传送可以同时进行,有利于简便、快速地实现网络的寻径操作。
其次,相对于现有技术中的双缓冲结构,本发明仅在输出通道上设有缓冲,可以减化片上网络路由的硬件结构,从而减少片上网络对芯片资源的占用。
再次,无论面对的是同构或异构片上网络,也无论某路由结点所连接的对象是处于逻辑上哪一层,本发明的片上网络路由均可一视同仁地进行处理,因此,能够非常容易进行网络的拓扑结构扩展,同时便于网络向大规模、多维度扩展。
总之,本发明能够在很大程度上降低数据传输过程中的时间开销以及功耗,其路由结构简单,并且与网络拓扑结构无关,具有很好的结构扩展性与规模扩展性,能很好地适应未来大规模/超大规模片上多处理器与片上***片上互连的需要。
参照图2,示出了本发明一种片上网络路由实施例2的结构图,具体可以包括:
一个交叉开关21,包括5个端口;
一个寻径单元22,用于确定当前数据传输的路径;
其中,
所述片上网络路由的4个端口201与其它路由结点相连,每个端口201包括两个数据通道,分别为输入通道2011和输出通道2012,并在所述输出通道上2012设置有输出缓冲模块20121,用于存储输入通道传入的数据;
所述片上网络路由的1个端口202与本地结点相连,所述端口202包括两个数据通道,分别为输入通道2021和输出通道2022。
本实施例与实施例1的区别在于,仅在与其它路由结点连接的输出通道上设置有输出缓冲模块,而在与本地结点连接的输出通道不设置输出缓冲模块。参照图3所示的本发明一种Mesh网路由结点间以及与本地结点连接的示意图,对于与本地结点的数据传输来说,数据缓冲在本地结点内部完成;对于与其它路由结点的数据传输来说,下一时刻当前方不堵塞时,被传输的数据将经过下一路由结点的交叉开关直接进入寻径计算出的某一个输出缓冲模块中。
参考图4,示出了本发明一种输出缓冲模块的示意图,具体可以包括:
数据片信息子模块401,用于存储当前传输的数据片信息;
因为有最大传输单元(MTU,Max imum Transmission Unit)限制,一般以太网是1500B,超过这个大小是不能在网络中传输的,所以,需要对大于这个大小的原始数据包进行分片,将其分成小于MTU的若干数据片,到了目的地再将这些数据片组装成原始数据包。
在实际中,所述数据片信息单元401可以包括5个域:
No:数据片类型与数据片序号,位数由数据包最大长度(片数)决定。前两位表示数据片类型,其中:
11:独片(用于传送命令的短包)
10:非独片的头片
01:非独片的中间片,因此,当No的前两位为01时,后面的几位
表示该中间片在数据包中的序号
00:尾片
Next:下一跳位置(包括结点地址与目的缓冲区地址)
Dest:最终目的结点地址
Time:数据片存活开始时间
Data:数据
缓冲模块信息子模块402,用于存储缓冲模块信息;
在实际中,所述缓冲模块信息单元402可以包括2个域:
addr:缓冲模块地址,也即缓冲模块在本地路由结点中的编号,对于本实施例来说,所述编号可以为1、2、3、4,其位数由路由结点向外连接的度(与网络拓扑有关)决定。
busy:缓冲模块状态信息,可用两位表示,其中
0X:缓冲区空闲,允许头片(或独片)到达。
1X:缓冲区忙(已经被某个数据包使用),其中
10:缓冲模块头片已经传送到下一跳位置,允许同一数据包的后续数据片到达。
11:缓冲模块头片尚未传送到下一跳位置,缓冲模块不允许任何新的数据片到达。
当然,上述的4个端口与其它路由结点相连,1个端口与本地结点相连的路由结构只是作为示例,本领域技术人员还可以根据需要设置其它结构的路由,例如,在交叉开关中设置10个端口,并且所述10个端口均与其它路由结点相连等,本发明对端口数量以及具体的连接方式不加以限制。
参照图5,示出了本发明一种片上网络路由实施例3的结构图,具体可以包括:
一个交叉开关51,包括多个端口501;
一个寻径单元52,用于确定当前数据传输的路径;
仲裁单元53,用于在有多个输入通道请求使用同一输出通道时,决定该输出通道的所有权归属;所述仲裁单元的数量与输出通道数量一致。
其中,
所述片上网络路由的每个端口501与本地结点或者其它路由结点相连,每个端口501包括两个数据通道,分别为输入通道5011和输出通道5012;
仅在所述输出通道5012上设置有输出缓冲模块50121,用于存储输入通道传入的数据。
由于交叉开关51提供了与本地结点或者其它路由结点互连的多个端口501,因此,交叉开关51的一个作用是通过一个抽象定义或动态选择的路径将进入网络的数据传输到它们的目的地,也即开关将数据从一个输入通道5011传输到一个或多个输出通道5012。
但在实际中,往往存在多个输入通道5011同时请求使用同一个输出通道5012的可能,为解决上述问题,本发明实施例针对每个输出通5012设置一个仲裁单元53,用于对所述多个请求进行仲裁。
在实际中,可在每个输入通道5011设置连向每个输出通道5012的请求线REQ,且在每个输出通道5012设置一根授予线RES连到每个输入通道5011。在某一输入通道5011需要使用某一输出通道5012时,会以置位与该输出通道5012相连的请求线REQ的方式发出请求。仲裁单元53会在这些请求之间进行仲裁,选出一个并置位相应的授予信号线RES。然后,选中的输入通道5011就开始传输它的数据。
对于仲裁算法,有多种方法可供选择,具体可以包括静态优先权、随机法、轮转法和最老优先权法。每种方法都有不同的性能特征和实现复杂度。其中,静态优先权法实现最简单,只需要用一个简单的优先权编码器,然而在一个很大的网络里,可能会造成不确定的延迟;轮转法需要一个额外的位,在每个时钟周期改变优先级的次序;最老优先法虽然与随机法有同样的平均延迟,但延迟变化比随机法要小一些。
例如,可以选择静态优先权法,具体而言,采取数据片存活期长者优先的策略,如果存活期相等的输入通道,则随机选取其中之一。
又如,选择最老优先法,在每个输出通道5012上设置一个控制FIFO(先进先出,First In First Out)队列。当一个输入通道请求5011获得一个输出通道5012进行传输时,就将一个请求放入所述控制FIFO队列中,在FIFO队列中最老的请求被授予输出通道5012。
在具体实现中,所述仲裁单元53可以作为一个独立的模块,也可以集成于所述交叉开关51内部,以方便处理输入通道5011对某一输出通道5012的请求,本发明对此不加以限制。
本发明通过仲裁单元对同一个输出通道的多个传输请求进行仲裁,有利于上一跳路由结点的输出缓冲模块和本地路由结点的输出缓冲模块之间建立起稳定的通路,
前面对片上网络路由进行了详细描述,参照图6,示出了本发明一种片上网络路由的实现方法流程图,具体可以包括:
步骤61、接收本地结点的针对某个数据包的通信请求;
步骤62、将该数据包进行多次跳跃,传输到目的结点,每次跳跃涉及,将该数据包从当前结点传输到下一跳结点,每次跳跃的过程包括:
步骤621、根据当前结点和目的结点,进行寻径操作,找到再下一跳路由结点地址,并确定下一跳输出缓冲模块地址;
本发明的寻径操作,是通过比较当前结点位置信息和目的结点位置信息而实现的,借助于高效、简洁的路由结点编码规则(例如卡诺图编码),只需要按照固定次序(例如从最高位地址编码开始)比较两个地址编码的对应位是否相异,就可得到下一跳的位置信息,也即得到下一跳输出缓冲模块地址,而本地的所有输出缓冲模块与它所连接的结点均有简单的一一映射关系,因此,能极快地实现寻径操作。
在实际中,由于每次跳跃是将所述数据包从当前结点送到下一跳结点的某一个输出缓冲模块,而下一跳输出缓冲模块是下一跳结点与再下一跳结点之间的唯一联系,因此,通过当前寻径操作,找到再下一跳结点地址的同时,也确定了该下一跳输出缓冲模块的地址。
步骤622、将所述数据包从当前结点传输到下一跳输出缓冲模块。
在具体实现中,对于本地结点来说,是没有输出缓冲模块的,但是为了传输方便,编址时也可以为其考虑一个虚拟输出缓冲模块,以便数据包到达目的结点时能直接进入目的结点的虚拟输出缓冲模块。
在实际中,所述当前节点可以包括作为传输起点的本地结点和路由结点。
当一个本地结点向本地路由结点发出通信请求时,数据传输尚未开始,此时数据包不在任何一个输出缓冲模块中,此时,本地路由结点的寻径单元除了确定接下来的传输中输出缓冲模块的Dest域的内容外,还需要完成连续两跳的寻径操作,也即通过寻径操作找到本地路由结点的某个输出缓冲模块地址,以及下一个路由结点的某个输出缓冲模块地址。
在这种情况下,所述每次跳跃的步骤可以包括:
在当前结点为本地结点时,进行寻径操作,找到下一跳路由结点地址和再下一跳路由结点地址,并确定本地路由结点的输出缓冲模块地址和下一跳输出缓冲模块地址;
将所述数据包从当前结点经本地路由结点的该输出缓冲模块,传输到该下一跳输出缓冲模块。
在当前结点为路由结点时,所述每次跳跃的步骤可以包括:
在当前结点为路由结点时,通过寻径操作,找到再下一跳路由结点地址,并确定下一跳输出缓冲模块地址;
将所述数据包从该路由结点的输出缓冲模块传输到下一跳输出缓冲模块。
前面提到,由于MTU的限制,要求通信请求方将>MTU的原始数据包分成小于MTU的若干数据片,并记录所有数据片的信息。这样,对于>MTU的长数据包,其数据片包括头片、一些中间片和尾片;对于≤MTU短数据包,其数据片只包括一个独片。因此,可依据数据包大小将数据包分为独片数据包和非独片数据包两类。
由于对同一数据包的数据片来说,其传输路径是相同的,所以,只需在头片和独片的传输过程中进行寻径操作。
对于非独片数据包的传输,需要花费若干个数据传输周期,其中,在每个数据传输周期,将整个数据包向前传输一跳。在具体实现中,可将每个数据传输周期分为L个节拍,所述节拍数目L等于该数据包中的数据片数目。可在每个数据传输周期的第一个节拍,判断前方输出缓冲模块是否可用,若是,则进行寻径操作,并将头片向前传递一跳;在该数据传输周期的其它节拍依次将后续片(包括中间片和尾片)向前传递一跳。具体而言,在第一个节拍,头片→Next0;第二个节拍,头片→Next1,中间片1→Next0;第三个节拍,头片→Next2,中间片1→Next1,中间片2→Next0;依次类推,直至尾片→Next0。
在进行尾片传递的同时,还应释放相应的输出缓冲模块。一种实现方式可以为,更新该尾片和原输出缓冲模块的相关信息,同时将原输出缓冲模块状态信息置为“空闲”,以释放网络资源。对于独片数据包,在独片向前传送的同时即释放网络资源。
在实际应用中,还应在每一个数据传送周期的第一个节拍,由当前路由结点进行通信超时的检测。一种检查方式可以为,当前路由结点检查与其端口相连的各输出缓冲模块中数据片存活期(也即当前时间与Time域记录的数据片存活开始时间的差)是否达到***规定的网络最大延迟max_delay,如达到,且该数据包还没有任何数据片已经到达目的结点,则直接将对应缓冲区状态信息置为“空闲”。为保证数据包的完整传输,对于数据通信超时的检测,只需在头片进行,若头片已经到达,即使超时,后续片仍然继续传送,直至完成通信。
为使本领域技术人员更好地理解本发明,以下以一个独片数据包的传输为例对本实施例进一步说明。本示例涉及,针对本地结点发起的通信请求,将该请求中的独片数据包从本地结点传输到目的结点。
参照图7,示出了该独片数据包传输示例的流程图,具体可以通过以下步骤实现:
步骤701、将该数据片(含目的位置信息、数据片生成时间)送往本地结点,并标记数据片状态为:尚未开始传送;
步骤702、本地路由结点在每个时钟周期的第一个节拍扫描,若发现该尚未开始传送的数据片,则启动拓扑寻径,找到本地路由结点的某个输出缓冲模块地址和下一跳路由结点,并确定下一跳输出缓冲模块地址;
步骤703、判断该下一跳输出缓冲模块的状态,若为忙,则返回步骤702,若为闲,则执行步骤704;
步骤704、将该数据片从当前结点经本地路由结点的该输出缓冲模块,传输到下一跳输出缓冲模块,更改数据片状态为:开始传送,标记该下一跳输出缓冲模块状态为“忙”;并启动拓扑寻径,找到再下一跳路由结点,并确定下一跳输出缓冲模块地址,并将所述两个地址记录到数据片信息单元;
步骤705、当前路由结点在每个时钟周期的第一个节拍检查与端口相连的结点的输出缓冲模块状态,若为闲,则持续检查,若为忙,则表示有通信需求,执行步骤706;
步骤706、检测该输出缓冲模块中的数据片是否传送超时,若是,则执行707,否则,执行708;
步骤707、置该输出缓冲模块为“空闲”,取消该通信,数据传输结束;
步骤708、判断当前路由结点是否与该数据片的目的结点相连,若是,若是,则执行709,否则,执行710;
步骤709、将数据送往目的结点,置该输出缓冲模块为“空闲”,完成通信,数据传输结束;
步骤710、检测该该输出缓冲模块指向的本地输出缓冲模块状态,若为忙,则返回步骤705,否则,执行步骤711;
步骤711、将数据片送本地输出缓冲模块,并本地输出缓冲模块状态为“忙”,置上一跳输出缓冲模块为“空闲”;启动拓扑寻径,找到再下一跳路由结点,并确定下一跳输出缓冲模块地址,并将所述两个地址记录到数据片信息单元。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本发明的片上网络路由不受网络拓扑结构的限制,可以应用于互联网网络通信,所述互联网既可以是家庭、学校以及小型会议办公场所等组建小型的局域网络,也可以是远程广域网。
以上对本发明所提供的一种片上网络路由及实现方法,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种片上网络路由,其特征在于,包括:
一个交叉开关,包括多个端口;
一个寻径单元,用于确定当前数据传输的路径;
其中,
所述片上网络路由的每个端口与本地结点或者其它路由结点相连,每个端口包括两个数据通道,分别为输入通道和输出通道;
仅在所述输出通道上设置有输出缓冲模块,用于存储输入通道传入的数据。
2.如权利要求1所述的片上网络路由,其特征在于,仅在与其它路由结点连接的输出通道上设置有输出缓冲模块。
3.如权利要求1所述的片上网络路由,其特征在于,还包括:
仲裁单元,用于在有多个输入通道请求使用同一输出通道时,决定该输出通道的所有权归属;
所述仲裁单元的数量与输出通道数量一致。
4.一种权利要求1所述片上网络路由的实现方法,其特征在于,包括:
接收本地结点的针对某个数据包的通信请求;
将该数据包进行多次跳跃,传输到目的结点,每次跳跃涉及,将该数据包从当前结点传输到下一跳结点,每次跳跃的过程包括:
根据当前结点和目的结点,进行寻径操作,找到再下一跳路由结点地址,并确定下一跳输出缓冲模块地址;
将所述数据包从当前结点传输到下一跳输出缓冲模块。
5.如权利要求4所述的方法,其特征在于,所述当前结点包括本地结点和路由结点。
6.如权利要求5所述的方法,其特征在于,所述每次跳跃的步骤包括:
在当前结点为本地结点时,进行寻径操作,找到下一跳路由结点地址和再下一跳路由结点地址,并确定本地路由结点的输出缓冲模块地址和下一跳输出缓冲模块地址;
将所述数据包从当前结点经本地路由结点的该输出缓冲模块,传输到该下一跳输出缓冲模块。
7.如权利要求5所述的方法,其特征在于,所述每次跳跃的步骤包括:
在当前结点为路由结点时,通过寻径操作,找到再下一跳路由结点地址,并确定下一跳输出缓冲模块地址;
将所述数据包从该路由结点的输出缓冲模块传输到下一跳输出缓冲模块。
CN200910235231XA 2009-09-28 2009-09-28 一种片上网络路由及实现方法 Pending CN102035723A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910235231XA CN102035723A (zh) 2009-09-28 2009-09-28 一种片上网络路由及实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910235231XA CN102035723A (zh) 2009-09-28 2009-09-28 一种片上网络路由及实现方法

Publications (1)

Publication Number Publication Date
CN102035723A true CN102035723A (zh) 2011-04-27

Family

ID=43888080

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910235231XA Pending CN102035723A (zh) 2009-09-28 2009-09-28 一种片上网络路由及实现方法

Country Status (1)

Country Link
CN (1) CN102035723A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063396A (zh) * 2009-11-18 2011-05-18 意法-爱立信公司 芯片上的“主-主”数据传送的方法和装置及片上***
CN102347897A (zh) * 2010-07-26 2012-02-08 西门子公司 用于对***数据进行数据交换的方法和子模块
CN102546417A (zh) * 2012-01-14 2012-07-04 西安电子科技大学 基于网络信息的片上网络路由器调度方法
CN102546406A (zh) * 2011-12-28 2012-07-04 龙芯中科技术有限公司 片上网络路由集中控制***和装置及自适应路由控制方法
CN102821046A (zh) * 2012-08-03 2012-12-12 北京理工大学 一种片上网络路由器输出缓冲***
CN102868604A (zh) * 2012-09-28 2013-01-09 中国航空无线电电子研究所 一种应用于片上网络的二维Mesh双缓冲容错路由单元
CN103973482A (zh) * 2014-04-22 2014-08-06 南京航空航天大学 具有全局通信事务管理能力的容错片上网络***及方法
CN104865938A (zh) * 2015-04-03 2015-08-26 深圳市前海安测信息技术有限公司 应用于评估人体受伤情况的节点连接芯片及其节点网络
CN105488011A (zh) * 2014-09-19 2016-04-13 杭州华为数字技术有限公司 片上网络的访存处理方法和片上网络
CN105900080A (zh) * 2013-12-12 2016-08-24 马维尔国际贸易有限公司 用于经由芯片内和芯片间跳跃总线在片上***之内和之间传送信息的方法和装置
CN114844827A (zh) * 2022-05-05 2022-08-02 浙江大学 一种用于片上网络芯片的基于共享存储的生成树路由硬件架构及方法
CN114925018A (zh) * 2022-07-22 2022-08-19 中科声龙科技发展(北京)有限公司 片上交叉开关***及芯片
CN115328828A (zh) * 2022-10-17 2022-11-11 中科声龙科技发展(北京)有限公司 数据存储***及其数据存储结构的数据寻址和返回方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102063396A (zh) * 2009-11-18 2011-05-18 意法-爱立信公司 芯片上的“主-主”数据传送的方法和装置及片上***
CN102347897A (zh) * 2010-07-26 2012-02-08 西门子公司 用于对***数据进行数据交换的方法和子模块
CN102347897B (zh) * 2010-07-26 2015-12-16 西门子公司 用于对***数据进行数据交换的方法和子模块
CN102546406B (zh) * 2011-12-28 2014-08-20 龙芯中科技术有限公司 片上网络路由集中控制***和装置及自适应路由控制方法
CN102546406A (zh) * 2011-12-28 2012-07-04 龙芯中科技术有限公司 片上网络路由集中控制***和装置及自适应路由控制方法
CN102546417A (zh) * 2012-01-14 2012-07-04 西安电子科技大学 基于网络信息的片上网络路由器调度方法
CN102821046B (zh) * 2012-08-03 2015-05-06 北京理工大学 一种片上网络路由器输出缓冲***
CN102821046A (zh) * 2012-08-03 2012-12-12 北京理工大学 一种片上网络路由器输出缓冲***
CN102868604B (zh) * 2012-09-28 2015-05-06 中国航空无线电电子研究所 一种应用于片上网络的二维Mesh双缓冲容错路由单元
CN102868604A (zh) * 2012-09-28 2013-01-09 中国航空无线电电子研究所 一种应用于片上网络的二维Mesh双缓冲容错路由单元
CN105900080A (zh) * 2013-12-12 2016-08-24 马维尔国际贸易有限公司 用于经由芯片内和芯片间跳跃总线在片上***之内和之间传送信息的方法和装置
CN105900080B (zh) * 2013-12-12 2019-05-14 马维尔国际贸易有限公司 用于经由芯片内和芯片间跳跃总线在片上***之内和之间传送信息的方法和装置
CN103973482A (zh) * 2014-04-22 2014-08-06 南京航空航天大学 具有全局通信事务管理能力的容错片上网络***及方法
CN105488011B (zh) * 2014-09-19 2018-06-19 杭州华为数字技术有限公司 片上网络的访存处理方法和片上网络
CN105488011A (zh) * 2014-09-19 2016-04-13 杭州华为数字技术有限公司 片上网络的访存处理方法和片上网络
CN104865938A (zh) * 2015-04-03 2015-08-26 深圳市前海安测信息技术有限公司 应用于评估人体受伤情况的节点连接芯片及其节点网络
CN104865938B (zh) * 2015-04-03 2017-08-22 深圳市前海安测信息技术有限公司 应用于评估人体受伤情况的节点连接芯片及其节点网络
WO2016155084A1 (zh) * 2015-04-03 2016-10-06 深圳市贝沃德克生物技术研究院有限公司 应用于评估人体受伤情况的节点连接芯片及其节点网络
CN114844827A (zh) * 2022-05-05 2022-08-02 浙江大学 一种用于片上网络芯片的基于共享存储的生成树路由硬件架构及方法
CN114925018A (zh) * 2022-07-22 2022-08-19 中科声龙科技发展(北京)有限公司 片上交叉开关***及芯片
CN115328828A (zh) * 2022-10-17 2022-11-11 中科声龙科技发展(北京)有限公司 数据存储***及其数据存储结构的数据寻址和返回方法

Similar Documents

Publication Publication Date Title
CN102035723A (zh) 一种片上网络路由及实现方法
US10027433B2 (en) Multiple clock domains in NoC
CN111190553B (zh) 使用混合存储器立方体链路的互连***及方法
CN101841420B (zh) 面向片上网络的低延迟路由器结构
US8819616B2 (en) Asymmetric mesh NoC topologies
CN104158738B (zh) 一种低缓冲区片上网络路由器及路由方法
US20140314076A1 (en) Credit flow control scheme in a router with flexible link widths utilizing minimal storage
US20150188847A1 (en) STREAMING BRIDGE DESIGN WITH HOST INTERFACES AND NETWORK ON CHIP (NoC) LAYERS
CN103959261B (zh) 网络处理器中的多内核互联
CN103684961A (zh) 自动构建无死锁互连
CN104871145A (zh) 网络设备中的存储器共享
CN108400880A (zh) 片上网络、数据传输方法和第一交换节点
CN104780122B (zh) 基于缓存再分配的层次化片上网络路由器的控制方法
CN102546417B (zh) 基于网络信息的片上网络路由器调度方法
US9667564B2 (en) Implementing hierarchical high radix switch with timesliced crossbar
CN109302357A (zh) 一种面向深度学习可重构处理器的片上互联结构
WO2011089899A1 (ja) 半導体システム、中継器およびチップ回路
US10983910B2 (en) Bandwidth weighting mechanism based network-on-chip (NoC) configuration
CN101834789A (zh) 面向包-电路交换片上路由器的回退转向路由算法及所用路由器
US10547514B2 (en) Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US20180198738A1 (en) Buffer Sizing of a NoC Through Machine Learning
KR20200139812A (ko) 네트워크 스위치에서의 큐
JP4687925B2 (ja) 優先調停システム及び優先調停方法
CN105871761A (zh) 一种高阶矩阵开关、片上网络及通信方法
CN105049377B (zh) 基于Crossbar架构的AFDX交换机数据总线结构及数据交换方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20110427