基于包交换的路由建立临时电路的方法及系统
文献发布时间:2023-06-19 19:30:30
技术领域
本发明涉及通信技术领域,尤其涉及一种基于包交换的路由建立临时电路的方法及系统。
背景技术
现有的互联总线分为包交换的互联总线(包交换通过动态路由传输数据包,收端重排序)和电路交换的互联总线(受控电路建立基于电路的数据通路,在通路上收发任何数据)。
现有基于包交换的片上互联总线的特点是:将一次传输的数据分为数个小包,包头(报头)载有源地址、目的地址以及数据信息(例如包的顺序和包的长度),基于包交换在片上网络中传输,接收时重新排序并检查数据无误后该传输结束。但是在具体应用过程中,包交换本身不能保证到达包的顺序,接收端要配有重排序缓存,增加了硬件缓存的额外开销,同于由于每个包都要自己建立路由,因此其传输时间较长、冗余大、且带有很大的时间不确定性,传输时延大。
现有基于电路交换的片上互联网总线仅适于小规模,连接数较少的系统。因为连接能力取决于芯片电路设计,极易出现后期的路径选择的灵活度的限制。若采用全节点全连接,系统的过度连线导致开销过大。
发明内容
本发明提供的基于包交换的路由建立临时电路的方法及系统,用于解决现有技术中存在的上述问题,保障了数据传输的低延迟的同时,提高了路由灵活度和连线使用效率。
本发明提供的一种基于包交换的路由建立临时电路的方法,包括:
根据至少二维网格连接的片上网络中的每个网络节点连接的本地模块,确定源路由节点和目标路由节点,所述本地模块用于将所述源路由节点的路由包从所述源路由节点传输到所述目标路由节点,所述路由包至少包括源路由节点标识和目标路由节点标识;
根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径;
根据所述路由路径,建立临时电路。
根据本发明提供的一种基于包交换的路由建立临时电路的方法,所述根据至少二维网格连接的片上网络中的每个网络节点连接的本地模块,确定源路由节点和目标路由节点,包括:
从所述每个网络节点连接的所述本地模块中,确定产生所述路由包的传输需求的第一设备,将所述第一设备作为所述源路由节点,所述传输需求至少包括所述目标路由节点标识;
将所述目标路由节点标识对应的第二设备作为所述目标路由节点。
根据本发明提供的一种基于包交换的路由建立临时电路的方法,所述根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径,包括:
根据所述源路由节点标识中的源编码地址、所述目标路由节点标识中的目标编码地址和预设编码规则,确定所述源路由节点和所述目标路由节点之间的目标路由方向,所述源编码地址和所述目标编码地址均是根据所述预设编码规则确定的;
根据所述目标路由方向,确定所述路由路径。
根据本发明提供的一种基于包交换的路由建立临时电路的方法,所述根据所述目标路由方向,确定所述路由路径,包括:
从所述源编码地址沿所述目标路由方向向所述目标编码地址传输所述路由包,确定所述路由包经过的多个中间节点,所述中间节点为除所述源路由节点和所述目标路由节点外的其余节点,所述路由包还包括路由过程中经过的多个中间节点的中间节点标识;
根据所述源路由节点到所述路由包经过的第一个中间节点之间的第一步路由路径、所述路由包连续经过的多个中间节点之间的第二步路由路径和所述路由包经过的最后一个中间节点到所述目标路由节点之间的最后一步路由路径,确定所述路由路径;
其中,所述第一步路由路径是根据第一步路由方向确定的,所述第一步路由方向是根据源编码地址、第一个中间节点的中间节点标识中的编码地址和预设编码规则确定的;
所述第二步路由路径是根据第二步路由方向确定的,所述第二步路由方向是根据所述路由包连续经过的多个中间节点的中间节点标识中的编码地址和所述预设编码规则确定的;
所述最后一步路由路径是根据最后一步路由方向确定的,所述最后一步路由方向是根据所述最后一个中间节点的中间节点标识中的编码地址、所述目标编码地址和所述预设编码规则确定的。
根据本发明提供的一种基于包交换的路由建立临时电路的方法,所述方法,还包括:
在确定满足路由拒绝条件的情况下,拒绝将所述路由包从所述源路由节点传输到所述目标路由节点,所述路由拒绝条件包括所述目标路由节点处于数据传输状态,或将所述路由包从所述源路由节点传输到所述目标路由节点经过的任意中间节点均处于忙碌状态。
根据本发明提供的一种基于包交换的路由建立临时电路的方法,所述根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径之后,所述方法,还包括:
判断所述源路由节点是否在预设时间内接收到所述目标路由节点传输的路由完成确认消息,所述路由完成确认消息是在所述目标路由节点对应的本地模块接收到所述路由包,且处于空闲状态情况下发送的;
若确定所述源路由节点在所述预设时间内未接收到所述路由完成确认消息,则确定路由失败,并通过所述源路由节点删除所述路由路径;
若确定所述源路由节点在所述预设时间内接收到所述路由完成确认消息,则确定路由成功,并通过所述源路由节点锁定所述路由路径。
根据本发明提供的一种基于包交换的路由建立临时电路的方法,所述方法,还包括:
将路由过程中所述路由包途径的每个中间节点的出入口信息加入到所述路由包中,其中,所述出入口信息中包括所述中间节点的出入口占用情况,任一中间节点均向临近节点发送出入口占用情况,所述临近节点为与所述任一中间节点的出入口连接的中间节点。
本发明还提供一种基于包交换的路由建立临时电路的系统,包括:第一确定模块、第二确定模块以及建立电路模块;
所述第一确定模块,用于根据至少二维网格连接的片上网络中的每个网络节点连接的本地模块,确定源路由节点和目标路由节点,所述本地模块用于将所述源路由节点的路由包从所述源路由节点传输到所述目标路由节点,所述路由包至少包括源路由节点标识和目标路由节点标识;
所述第二确定模块,用于根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径;
所述建立电路模块,用于根据所述路由路径,建立临时电路。
本发明还提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现如上述任一种所述基于包交换的路由建立临时电路的方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于包交换的路由建立临时电路的方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于包交换的路由建立临时电路的方法。
本发明提供的基于包交换的路由建立临时电路的方法及系统,基于至少二维网格连接的片上网络, 通过包交换的路由过程为一次传输建立并锁定一个临时电路,保障此次传输的高带宽、固定的低延迟、和传输的可靠性;根据网格的资源可以同时建立并锁定多个并行的传输电路,避免了现有技术中基于电路交换的片上网络的总线电路存在的规模低、路由灵活度低以及过度连线开销的问题以及现有技术中基于包交换的片上网络的总线电路存在的传输时延大的问题,保障了数据传输的低延迟的同时,提高了路由灵活度和连线使用效率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于包交换的路由建立临时电路的方法的流程示意图;
图2是本发明提供的二维网格连接的片上网络的结构示意图;
图3是本发明提供的连接外套的结构示意图;
图4是本发明提供的基于包交换的路由建立临时电路的系统的结构示意图;
图5是本发明提供的电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的基于包交换的路由建立临时电路的方法,汲取了包交换的路由灵活和规模的可伸缩性的优点;又保持了电路交换低延迟和无重排序缓存的优点。可以同时支撑多个并行传输。该方法可以基于任何二维或多维片上网络实现,是一个利用包传输建立路由并将这个路由锁定成临时电路的二维或多维并行片上网络总线电路系统。1)路由的发起者(源路由节点)通过正向路由传输路由包,建立并临时锁定一个电路通路,2)路由的接收者(目标路由节点)接收到该路由包的同时通过该路由反向发送锁定路由的控制,将路由包传输的路由路径变成直连电路,具体实现如下:
图1是本发明提供的基于包交换的路由建立临时电路的方法的流程示意图,如图1所示,方法包括:
步骤110,根据至少二维网格连接的片上网络中的每个网络节点连接的本地模块,确定源路由节点和目标路由节点,所述本地模块用于将所述源路由节点的路由包从所述源路由节点传输到所述目标路由节点,所述路由包至少包括源路由节点标识和目标路由节点标识;
步骤120,根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径;
步骤130,根据所述路由路径,建立临时电路。
需要说明的是,上述方法的执行主体可以是计算机设备,也可以是芯片的片上系统。
本发明实施例中,该片上网络可以具体为异构多核实时的片上系统Soc的片上网络。该片上网络可以同时支持多个并行传输,该片上网络可以具体是利用至少是二维网格连接的片上网络构架,该片上网络中的每个网络节点可以连接一个本地模块。
本发明实施例中,该本地模块可以具体用于将路由包从源路由节点传输到目标路由节点,也可以具体用于接收路由包,该本地模块可以具体是功能模块,也可以是存储模块,还可以是输入输出接口。该路由包可以具体由源路由节点产生,其可以具体包括源路由节点标识和目标路由节点标识。
本发明实施例中,该本地模块可以具体通过该节点的连接外套wrapper连接到片上网络中的其他各个网络节点。
需要说明的是,该连接外套的网络侧按照片上网络的电路和协议设计,该连接外套的模块侧基于可重构的电路和协议配置,通过用户的配置完成片上网络和模块侧的电路的功能相匹配。
本发明实施例中,可以具体通过将与片上网络的各个网络节点连接的本地模块作为节点,将所有本地模块对应的节点具体划分为源路由节点、目标路由节点和中间节点。
本发明实施例中,本地模块对应的每一个节点都有一个唯一标识,其可以具体连接的片上网络中的网络节点的地址确定,该源路由节点标识可以具体为与源路由节点连接的网络节点的地址,该目标路由节点标识可以具体为与目标路由节点连接的网络节点的地址。
本发明实施例中,根据源路由节点标识对应的地址和目标路由节点标识对应的地址,确定路由包从源路由节点传输到目标路由节点的路由过程中所经过的节点,这些节点即是路由包从源路由节点传输到目标路由节点的路由路径。
需要说明的是,每一步路由决策之后,将本节点(路由包到达并经过的节点,即中间节点)和本节点对应的出入口信息(包括本节点的出入口占用情况)记录进路由包中,在向下一节点传输路由包的同时将使用的路径锁定,成为了欲建立电路的一部分。
本发明实施例中,根据路由包从源路由节点传输至目标路由节点所经过的所有节点组成的路由路径,建立一个暂时的、沿路由路径的临时电路。
本发明提供的基于包交换的路由建立临时电路的方法,基于至少二维网格连接的片上网络, 通过包交换的路由过程为一次传输建立并锁定一个临时电路,保障此次传输的高带宽、固定的低延迟、和传输的可靠性;根据网格的资源可以同时建立并锁定多个并行的传输电路,避免了现有技术中基于电路交换的片上网络的总线电路存在的规模低、路由灵活度低以及过度连线开销的问题以及现有技术中基于包交换的片上网络的总线电路存在的传输时延大的问题,保障了数据传输的低延迟的同时,提高了路由灵活度和连线使用效率。
进一步地,在一个实施例中,所述根据至少二维网格连接的片上网络中的每个网络节点连接的本地模块,确定源路由节点和目标路由节点,包括:
从所述每个网络节点连接的所述本地模块中,确定产生所述路由包的传输需求的第一设备,将所述第一设备作为所述源路由节点,所述传输需求至少包括所述目标路由节点标识;
将所述目标路由节点标识对应的第二设备作为所述目标路由节点。
进一步地,在一个实施例中,所述方法,还包括:
将路由过程中所述路由包途径的每个中间节点的出入口信息加入到所述路由包中,其中,所述出入口信息中包括所述中间节点的出入口占用情况,任一中间节点均向临近节点发送出入口占用情况,所述临近节点为与所述任一中间节点的出入口连接的中间节点。
本发明实施例中,该源路由节点可以具体为与片上网络的各网络节点连接的本地模块中产生路由包传输需求的第一设备。该传输需求可以具体包括目标路由节点标识、发送或接收等传输控制和数据性质等。
本发明实施例中,从与片上网络的各网络节点连接的本地模块中找到带有上述目标路由节点标识的第二设备,并将该第二设备作为目标路由节点。
需要说明的是,片上网络中的任意网络节点所连的本地模块均可作为路由起点(即源路由节点),并由路由起点对应的本地模块的连接外套启动并建立动态路由。
1,路由的目的是建立并临时锁定一个连接源路由节点到目标路由节点的数据传输电路;
2,路由起点可以是数据的发送端,也可以是数据的接收端;
3,如果数据传输出错,由数据的接收端报告接收错误,并向源路由节点发送异常;
4,如果路由起点是数据发送端,路由起点收到路由终点的锁定确认后立即开始发送数据;
5,如果路由终点是数据发送端,路由终点在发送锁定确认后立即开始发送数据;
6,路由起点定义超时检测参数,开始路由时设置超时计数器,启动倒计时,记时包括路由时间和数据传输时间,倒计时结束立即清除并释放该路由。
需要说明的是,片上网络中的任意网络节点所连的本地模块均可作为路由中间节点(即中间节点)。
1,仅作为路由中间节点下连接的本地模块不参与数据传输,其相关的路由和数据传输仅由该节点的连接外套完成;
2,每个路由节点(包括路由起点和路由终点)的连接外套,在空闲时利用连线向临近节点(该临近节点为与路由节点的出入口直接连接的路由节点)发送节点使用状态,保证临近节点保存有互相连接的节点的使用状态,用以提速路由,并减少锁死;
3,每个路由节点收到路由包后将本路由节点的地址和路由使用的端口添加到路由包内的路由信息表;
4,根据路由终点的地址和临近节点状态将路由包发送到一个临近节点,并临时锁定路由;
5,如果该临近节点(除入口外的)其他三个节点都已占用,则向路由起点发送拒绝。
片上网络中的任意网络节点和所连的本地模块均可作为路由目目标路由节点(即路由终点节点)。
1,路由终点节点收到路由包,确认本节点是路由终点,立即启动终点协议;
2,如可接受路由起点的要求,立即按路由原路返回锁定路由路径的操作;
3,如不能接受路由起点的要求,例如路由终点正在传输数据,立即发送拒绝,按路由原路返回并释放路由路径。
本发明提供的基于包交换的路由建立临时电路的方法,将路由包沿源路由节点到目标路由节点进行传输,建立一个沿源路由节点到目标路由节点传输的路由路径的总线电路,避免了包交换自身的传输时间不定以及缓存的额外开销问题,保持了包交换的灵活性和连线使用效率。
进一步地,在一个实施例中,所述根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径,包括:
根据所述源路由节点标识中的源编码地址、所述目标路由节点标识中的目标编码地址和预设编码规则,确定所述源路由节点和所述目标路由节点之间的目标路由方向,所述源编码地址和所述目标编码地址均是根据所述预设编码规则确定的;
根据所述目标路由方向,确定所述路由路径。
本发明实施例中,该源编码地址可以具体为源路由节点标识中的源路由节点的地址,其可以具体是根据预设编码规则编码后得到的。
本发明实施例中,该目标编码地址可以具体为目标路由节点标识中的目标路由节点的地址,其可以具体是根据预设编码规则编码后得到的。
本发明实施例中,该预设编码规则可以具体为按照节点之间的方位特征进行编码,得到各个节点(包括源路由节点、目标路由节点和中间节点)的地址。例如,源路由节点、目标路由节点和中间节点的地址包括两段编码,第一段编码地址是按照节点之间的东西方位进行编码得到的,第二段编码地址是按照节点之间的南北方位进行编码得到的,并由此编码指导路由,且该两段编码遵循为西小东大和北小南大的规则。
本发明实施例中,根据源编码地址和目标编码地址便可以知道源路由节点与目标路由节点之间的方位信息,根据该方位信息便可以确定源路由节点和目标路由节点之间的目标路由方向。
在路由时,根据目标编码地址(即目标路由节点的地址)和当前节点(接收到路由包的节点)的地址比较,若目标编码地址中的第一段编码地址大于当前节点的地址中的第一段编码地址,则当前节点与目标路由节点的目标路由方向为东,向当前节点的东方向路由,反之向当前节点的西方向路由;若目标编码地址中的第二段编码地址大于当前节点的地址的第二段编码地址,则当前节点与目标路由节点的目标路由方向为南,向当前节点的南方向路由,反之向当前节点的北方向路由。
本发明实施例中,沿目标路由方向,将路由包由源路由节点传输到目标路由节点,并确定源路由节点到目标路由节点之间的路由路径。
进一步地,在一个实施例中,所述根据所述目标路由方向,确定所述路由路径,包括:
从所述源编码地址沿所述目标路由方向向所述目标编码地址传输所述路由包,确定所述路由包经过的多个中间节点,所述中间节点为除所述源路由节点和所述目标路由节点外的其余节点,所述路由包还包括路由过程中经过的多个中间节点的中间节点标识;
根据所述源路由节点到所述路由包经过的第一个中间节点之间的第一步路由路径、所述路由包连续经过的多个中间节点之间的第二步路由路径和所述路由包经过的最后一个中间节点到所述目标路由节点之间的最后一步路由路径,确定所述路由路径;
其中,所述第一步路由路径是根据第一步路由方向确定的,所述第一步路由方向是根据源编码地址、第一个中间节点的中间节点标识中的编码地址和预设编码规则确定的;
所述第二步路由路径是根据第二步路由方向确定的,所述第二步路由方向是根据所述路由包连续经过的多个中间节点的中间节点标识中的编码地址和所述预设编码规则确定的;
所述最后一步路由路径是根据最后一步路由方向确定的,所述最后一步路由方向是根据所述最后一个中间节点的中间节点标识中的编码地址、所述目标编码地址和所述预设编码规则确定的。
本发明实施例中,从源路由节点对应的源编码地址沿目标路由方向将路由包传输给目标编码地址对应的目标路由节点,并找到该路由过程路由包经过的各个中间节点。
需要说明的是,路由包每经过一个节点,路由包添加路径参数,包括:当前节点地址、入口和出口;将这三个参数加入路由包内,随着路由推进,路由包逐渐加长。目标路由节点接收到路由包后,由目标路由节点的本地模块拆包,并将路由包的内容,含数据传输信息和路由信息,记录在目标路由节点的连接外套内。
本发明实施例中,将路由过程中,路由包从源路由节点到第一步经过的中间节点之间的路由路径(即第一步路由路径)、路由包连续经过的多个中间节点之间的路由路径(即第二步路由路径,含多步路由路径)和路由包从最后一个中间节点到目标路由节点之间的路由路径(即最后一步路由路径)进行拼接,即可得到源路由节点到目标路由节点的路由路径。
本发明实施例中,该第一步路由路径可以具体根据第一步路由方向确定的,该第一步路由方向是根据源编码地址与第一个中间节点的编码地址(中间节点的编码地址是按照预设编码规则得到的)确定的。
本发明实施例中,该第二步路由路径可以具体根据第二步路由方向确定的,该第二步路由方向是连续经过的多个中间节点的编码地址确定的。
本发明实施例中,该最后一步路由路径可以具体根据最后一步路由方向确定的,该最后一步路由方向是根据目标编码地址与最后一个中间节点的编码地址确定的。
本发明提供的基于包交换的路由建立临时电路的方法,根据源路由节点标识和目标路由节点标识建立路由包从源路由节点传输到目标路由节点的路由路径,并基于该路由路径建立总线电路,其低延迟和灵活性高的特点能够为实时数据传输提供保障。
进一步地,在一个实施例中,所述方法,还可以具体包括:
在确定满足路由拒绝条件的情况下,拒绝将所述路由包从所述源路由节点传输到所述目标路由节点,所述路由拒绝条件包括所述目标路由节点处于数据传输状态,或将所述路由包从所述源路由节点传输到所述目标路由节点经过的任意中间节点均处于忙碌状态。
本发明实施例中,在路由过程中,若确定满足路由拒绝条件中的两种情况时,均可以拒绝将路由包从源路由节点传输到目标路由节点。第一种情况:目标路由节点的本地模块处于数据传输状态,其可以具体根据目标路由节点的本地模块是否正在传输数据确定;第二种情况:超级拥塞,即源路由节点与目标路由节点之间的任意可达中间节点均处于忙碌状态,例如,路由到任意一个中间节点时,该中间节点除入口外的其余几个出口均已被占用(有入无出)。
进一步地,在一个实施例中,所述根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径之后,所述方法,还包括:
判断所述源路由节点是否在预设时间内接收到所述目标路由节点传输的路由完成确认消息,所述路由完成确认消息是在所述目标路由节点对应的本地模块接收到所述路由包,且处于空闲状态情况下发送的;
若确定所述源路由节点在所述预设时间内未接收到所述路由完成确认消息,则确定路由失败,并通过所述源路由节点删除所述路由路径;
若确定所述源路由节点在所述预设时间内接收到所述路由完成确认消息,则确定路由成功,并通过所述源路由节点锁定所述路由路径。
本发明实施例中,该预设时间可以具体根据源路由节点设定的超时计数器进行设置。
源路由节点在发出路由包之前,综合考虑路由时间开销和数据传输时间开销,设定超时计数器,并开始倒计时。倒计时结束时,向源路由节点和路由经过的各个节点发起模块报告,若倒计时结束,目标路由节点对应的本地模块还未收到该路由包,则目标路由节点不会向源路由节点发送路由完成确认消息,则此次路由发生超时错误,路由失败,并撤销锁定的路由路径,由源路由节点删除该路由路径。若目标路由节点对应的本地模块在倒计时时间内,接收到该路由包,且目标路由节点对应的本地模块处于空闲状态(目标路由节点对应的本地模块未进行数据传输),则向源路由节点发送路由完成确认消息,源路由节点在接收到该路由完成确认消息后,便可以确定路由成功,由源路由节点锁定该路由路径,即锁定该路由路径建立的临时电路。
举例如下:
假设,片上网络中的各个网络节点的节点带宽W-bit=256;
节点数R=36;
每节点路由延迟=1时钟;
每节点数据电路为组合电路,无流水线延迟;
设有路由建立协议、路由锁定协议和路由解锁协议;
设有数据传输协议(数据链);
设有超时异常处理协议;
设有本地器件的节点连接外套wrapper及外套重构方法。
图2是一个二维网格连接的片上网络(11),由节点R(14)和节点间连线(12)以及节点至接口连线(13)构成。每个节点连接东南西北(东E、南S、西W、北N)和本地模块的连接外套(15),其中,连接外套的里面是被连模块M,被连模块M是图3中的(23)。(11)可以由多个节点R(14)构成,此例为36个节点。
每个节点间连线(12)是两套双向并行多比特连线,从一个节点连到另一个节点。连线分为两套,分别为节点输出连线(256bit+7bit)和节点输入连线(256bit+7bit)。每个节点共有四套连线(东E、南S、西W、北N)和一套本地上下载连线。连线的宽度为总线宽度,例如,是263bit输入线和263bit输出线(256bit数据+7bit控制)。
图2的二维网格连接的片上网络(11)的输入输出连线(13)是两套并行多比特连线,从一个节点连到一个外部接口。连线分为两套,分别为系统输出和系统输入。连线的宽度为总线宽度,例如,连线的宽度可以是526bit,263bit输入线和263bit输出线(256bit数据+7bit控制)。
二维网格连接的片上网络(11)的每一个节点R的内部结构如图2的右侧(14)所示。每个节点的设计是相同的。其连线分为四个方向,八组连线;分别为:
1,Nin:北口输入线(可连至南口输出、东口输出、西口输出、和本地(C)输入);
2,Nout:北口输出线(来自南口输入、东口输入、西口输入、和本地(C)输出);
3,Sin:南口输入线(可连至北口输出、东口输出、西口输出、和本地(C)输入);
4,Sout:南口输出线(来自北口输入、东口输入、西口输入、和本地(C)输出);
5,Ein:东口输入线(可连至北口输出、南口输出、西口输出、和本地(C)输入);
6,Eout:东口输出线(来自北口输入、南口输入、西口输入、和本地(C)输出);
7,Win:西口输入线(可连至北口输出、南口输出、东口输出、和本地(C)输入);
8,Wout:西口输出线(来自北口输入、南口输入、东口输入、和本地(C)输出);
其中,Clock:时钟信号输入端。
本地模块的连接外套(15)一方面通过标准连线连至节点,见(14)。另一方面和被连模块M(23),通过连接重构配置,连到一起。见图3。
本地模块的连接外套(图3的虚线内)包括:数据通路(21)和控制通路(22)。
1,(21)的第一个电路功能是入口电路重构设计电路(20);
2,(21)的第二个电路功能是出口电路重构设计电路(29);
3,(21)的第三个电路功能是路由的入口和出口;
4,(22)的第一个电路功能是为源路由节点的打包功能;
5,(22)的第二个电路功能是为中间节点和目标路由节点来路由包的接收和拆包解析;
6,(22)的第三个电路功能是为源路由节点和中间节点决定出口路由和传输路由包;
7,(22)的第四个电路功能是源路由节点的看门狗;
8,(22)的第五个电路功能是为源路由节点完成数据收(含CRC校验)发和控制(源路由节点可为数据的接收端或发送端);
9,(22)的第六个电路功能是为目标路由节点完成数据收(含CRC校验)发和控制(目标路由节点可为数据的接收端或发送端);
10,(22)的第七个电路功能是记录保持更新临近节点的占用状态。
其中,(24)将(21)的东西南北四路输入引入连接外套控制器(22)实施路由,(25)将路由决策送给(21)实施出口选择,连接外套至模块的连线(26)电路:执行入口电路重构配置,在电路设计阶段,根据被连模块的输入线确定连接模块入口电路和连接协议的配置,将经过重构配置的数据送入模块。
被连模块至连接外套的连线(27)电路:执行出口电路重构配置:在电路设计阶段,根据被连模块的输出线确定连接模块出口电路和连接协议的配置,将尚未重构配置数据输出至连接外套。
(28)用于连接外套和被连模块的控制和状态信息交互,至少包括支持源路由的建立路径需求、数据基本信息、超时和错误报告等;和支持目标路由的(含广播和多播)数据基本信息、超时和错误报告等。
连接外套执行的两个主要功能具体为:
第一个功能是通过路由建立电路连接:建立、锁定、撤销路由连接。这个功能是动态的,每次传输完成一次。(22)根据源路由本地模块发起器件的数据传输要求,编制路由包,完成:1,(22)节点保持记录临近节点的占用状况;2,根据路由的目标路由节点的地址和临近节点的占用状况,添加报头内容,记录路径,临时锁定该节点两个方向的入出路径,并向确定的方向发送路由包;3,依此路由方法,将最终找到目标路由节点的本地模块,并建立一条电路来连接源路由节点的本地模块与目标路由节点的本地模块;4,目标路由节点的本地模块确认传输请求,如空闲,则发出回传锁定电路的命令;如不空闲,则发出忙状态;5,锁定电路:建立一个定向的锁定的电路连接;6,保持锁定状态,支撑总线传输;7,撤销锁定:传输结束后,数据接收侧发出撤销电路锁定的请求,源路由节点执行电路撤销的命令,沿线的所有节点撤销锁定,释放电路资源;8,传输申请节点配有超时控制,异常超时的传输会被终止,并向系统上报。
第二个功能是使用电路传输数据:电路锁定后,开始在电路上传输数据。源路由节点或目标路由节点均可发送数据,发送的数据被使能比特生效,发送结束后使能比特消失,数据接收方根据CRC校验结果做数据接收报告,源路由节点收到报告立即解锁电路,释放电路资源。
被连模块M(23):可以是处理器,功能模块,存储器和接口模块。见图3。
对被连模块M(23)的输入连接可以包括:
1,处理器:连接输入至处理器的数据存储写入总线和程序/配置存储器;
2,功能模块:连接输入至功能模块的数据存储写入总线和配置寄存器;
3,存储器:连接输入至数据存储器的写入端口,节点内部直接存储器访问(DirectMemory Access,DMA)提供地址;
4,接口:连接输入至接口,节点内部DMA提供后续数据传输。
对被连模块M(23)的输出连接可能包括:
1,处理器:处理器的数据存储读出总线连至输出;
2,功能模块:模块的数据存储的读出总线连至输出;
3,存储器:数据存储器的读出通过节点内部DMA连至输出;
4,接口:接口直接连至输出。
按图2(11)设有36个被连模块M(含部分存储模块和接口模块),如果按电路全互联,256bit总线,其逻辑开销可达5百万门,连线总长可达1300米,设驱动功率系数为1。本发明提供的基于包交换的路由建立临时电路的方法中逻辑门开销小于0.5百万门,连线总长不多于64米,相对连线面积和驱动功率减低20倍。
本发明与电路交换方案的比较如表1所示:
表1
;
本发明与包交换方案的比较如表2所示:
表2
;
本发明提供的基于包交换的路由建立临时电路的方法,通过超时检测判断是否路由成功,能够在路由失败时,及时将锁定的路由路径释放,避免了资源浪费。
下面对本发明提供的基于包交换的路由建立临时电路的系统进行描述,下文描述的基于包交换的路由建立临时电路的系统与上文描述的基于包交换的路由建立临时电路的方法可相互对应参照。
图4是本发明提供的基于包交换的路由建立临时电路的系统的结构示意图,如图4所示,包括:
第一确定模块410、第二确定模块411以及建立电路模块412;
所述第一确定模块410,用于根据至少二维网格连接的片上网络中的每个网络节点连接的本地模块,确定源路由节点和目标路由节点,所述本地模块用于将所述源路由节点的路由包从所述源路由节点传输到所述目标路由节点,所述路由包至少包括源路由节点标识和目标路由节点标识;
所述第二确定模块411,用于根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径;
所述建立电路模块412,用于根据所述路由路径,建立临时电路。
本发明提供的基于包交换的路由建立临时电路的系统,基于至少二维网格连接的片上网络, 通过包交换的路由过程为一次传输建立并锁定一个临时电路,保障此次传输的高带宽、固定的低延迟、和传输的可靠性;根据网格的资源可以同时建立并锁定多个并行的传输电路,避免了现有技术中基于电路交换的片上网络的总线电路存在的规模低、路由灵活度低以及过度连线开销的问题以及现有技术中基于包交换的片上网络的总线电路存在的传输时延大的问题,保障了数据传输的低延迟的同时,提高了路由灵活度和连线使用效率。
图5是本发明提供的一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(communication interface)511、存储器(memory)512和总线(bus)513,其中,处理器510,通信接口511,存储器512通过总线513完成相互间的通信。处理器510可以调用存储器512中的逻辑指令,以执行如下方法:
根据至少二维网格连接的片上网络中的每个网络节点连接的本地模块,确定源路由节点和目标路由节点,所述本地模块用于将所述源路由节点的路由包从所述源路由节点传输到所述目标路由节点,所述路由包至少包括源路由节点标识和目标路由节点标识;
根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径;
根据所述路由路径,建立临时电路。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机(可以是嵌入式处理器,个人计算机,服务器,或者网络处理器等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
进一步地,本发明公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的基于包交换的路由建立临时电路的方法,例如包括:
根据至少二维网格连接的片上网络中的每个网络节点连接的本地模块,确定源路由节点和目标路由节点,所述本地模块用于将所述源路由节点的路由包从所述源路由节点传输到所述目标路由节点,所述路由包至少包括源路由节点标识和目标路由节点标识;
根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径;
根据所述路由路径,建立临时电路。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的基于包交换的路由建立临时电路的方法,例如包括:
根据至少二维网格连接的片上网络中的每个网络节点连接的本地模块,确定源路由节点和目标路由节点,所述本地模块用于将所述源路由节点的路由包从所述源路由节点传输到所述目标路由节点,所述路由包至少包括源路由节点标识和目标路由节点标识;
根据所述源路由节点标识和所述目标路由节点标识,确定将所述路由包从所述源路由节点传输到所述目标路由节点的路由路径;
根据所述路由路径,建立临时电路。
以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机(可以是嵌入式处理器,个人计算机,服务器,或者网络处理器等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
- 一种基于VPN路由建立LSP的方法、系统和路由器
- 一种基于VPN路由建立LSP的方法、系统和路由器