路由自适应异步2D-Torus片上网络及其设计方法

文档序号:7817515阅读:234来源:国知局
路由自适应异步2D-Torus片上网络及其设计方法
【专利摘要】一种路由自适应异步2D-Torus片上网络及其设计方法,多个异步路由节点按照2D-Torus拓扑结构和异步握手通信机制构建片上网络;每个异步路由节点具有东向、西向、南向、北向和本地端口共五个端口,每一端口均包括输入端、数据接收模块、数据解码模块、路由计算模块、交叉开关模块、数据仲裁模块、数据编码模块、数据发送模块和输出端;该方法包括:设计异步路由节点具有的各个端口的接口行为,并对异步路由节点内部的数据流向进行描述;对异步片上网络中传输数据的数据结构进行设计;利用异步有限状态机的方法设计端口中的模块;完成各个模块的硬件编程;构建异步路由节点;构建N×N的异步2D-Torus片上网络。
【专利说明】路由自适应异步2D-T〇rus片上网络及其设计方法

【技术领域】
[0001] 本发明属于异步电路设计领域,具体涉及一种路由自适应异步2D-Torus(二维环 状)片上网络及其设计方法。

【背景技术】
[0002] 随着集成电路技术的飞速发展,系统规模越来越大,时钟频率越来越高。传统总线 时钟和功耗方面的问题越来越难以解决。片上网络(Network on Chip,NoC)可以很好的解 决这些问题,已逐渐成为片上多核的标准通信架构。目前大多数片上网络采用同步通信机 制,网络节点间的通信采用单一时钟驱动。只有少量片上网络采用异步通信机制,网络节点 间的通信由局部握手协议控制。对异步片上网络的研究相对落后于同步片上网络,主要是 由于异步电路设计较为复杂,且缺少成熟的工具支持,不过仍然是集成电路设计里的一个 重要的研究方向。将异步电路设计方法应用于大规模集成电路中会给现阶段的电路设计解 决很多问题,尤其是功耗和电磁兼容性方面会有显著的提高。
[0003] 目前,异步片上网络的拓扑结构主要利用最典型的2D_Mesh(二维网格)结构,该 结构简单,易于实现,扩展性强。但是大规模电路中,节点比较多,这样节点间距离比较大, 占用面积也比较大,功耗相对较高。
[0004] 另外,由于异步电路设计较为复杂,因此传统的异步片上网络采用的都是确定性 路由算法。确定性路由算法是一种静态路由算法,每个路由节点与其他路由节点间的通"[目 在最初就是确定的,源地址和目的地址间只存在一条数据通道。确定性路由算法具有路由 固定,响应迅速的特点,在低拥塞的片上网络环境中具有较优的性能。但是该类算法具有被 动性和盲目性,只能通过预先对数据包进行分流传输,无法实时的根据拥塞状态,动态调整 路由方向。因此,当网络发生拥塞时,可能会出现路由资源的浪费,而且会降低数据传输的 效率,最终将导致路由性能的迅速下降。


【发明内容】

[0005] 针对现有技术中存在的不足,本发明提供一种路由自适应异步2D-T〇rUS片上网 络及其设计方法。
[0006] 本发明的技术方案:
[0007] -种路由自适应异步2D_Torus片上网络,包括:多个异步路由节点、挂载在不同 的异步路由节点上的多种IP核;所述多个异步路由节点按照2D-T 〇rUS拓扑结构和异步握 手通信机制构建片上网络;
[0008] 所述异步路由节点具有东向、西向、南向、北向和本地端口共五个端口,其中本地 端口挂载所需的IP核,用于对从异步路由节点接收的数据进行相应的处理;东向、西向、南 向、北向端口作为与相邻异步路由节点的连接端口,接收上游异步路由节点的数据帧,同时 经过路由计算与数据仲裁,确定合适的输出方向端口,并通过该输出方向端口将数据传递 给下游异步路由节点;
[0009] 所述东向、西向、南向、北向和本地端口中每一端口,包括输入端、数据接收模块、 数据解码模块、路由计算模块、交叉开关模块、数据仲裁模块、数据编码模块、数据发送模块 和输出端;
[0010] 上游异步路由节点某端口的数据帧从当前异步路由节点某相应端口的输入端进 来后,依次经过数据接收模块、数据解码模块、路由计算模块、交叉开关模块、数据仲裁模 块、数据编码模块和数据发送模块,从当前异步路由节点该端口的输出端输出至下游异步 路由节点的某相应端口;
[0011] 所述数据接收模块,用于从输入端接收数据并传送至数据解码模块;
[0012] 所述数据解码模块,用于对从数据接收模块接收的数据进行解码,并把解码后的 数据发送至路由计算模块;
[0013] 所述路由计算模块,用于利用基于阻塞感知的异步电路自适应路由算法,确定从 数据解码模块接收的解码后的数据要发送的输出方向端口;
[0014] 所述交叉开关模块,用于将解码后的数据发送到路由计算模块确定的端口的数据 仲裁模块;
[0015] 所述数据仲裁模块,用于接收除本端口以外的其他端口的交叉开关模块发送来的 数据;对所接收的数据进行优先级仲裁;按照仲裁的优先级顺序,将数据发送至数据编码 模块;
[0016] 所述数据编码模块,用于接收数据仲裁模块发送的数据,并对接收的数据进行编 码,将编码后的数据发送至数据发送模块;
[0017] 所述数据发送模块,用于将从数据编码模块接收的数据发送至输出端。
[0018] 所述的路由自适应异步2D-T〇rus片上网络的设计方法,采用异步电路设计方法 学对该片上网络进行设计,包括如下步骤:
[0019] 一、利用Petri网异步电路图形表示法设计异步路由节点具有的各个端口的接口 行为,并对异步路由节点内部的数据流向进行描述;
[0020] 二、对异步片上网络中传输数据的数据结构进行设计;
[0021] 三、利用异步有限状态机的方法设计端口中的模块,得到异步有限状态机的状态 转换图;所述端口中的模块,包括:数据接收模块、数据解码模块、路由计算模块、交叉开关 模块、数据仲裁模块、数据编码模块和数据发送模块;
[0022] 四、根据异步有限状态机的状态转换图,利用System Verilog语言完成各个模块 的硬件编程;
[0023] 五、利用步骤四完成的各个模块构建异步路由节点;
[0024] 六、利用NXN个异步路由节点按照2D-Torus拓扑结构和异步握手通信机制构建 NXN的异步2D-Torus片上网络;
[0025] 所述的路由计算模块利用基于阻塞感知的异步电路自适应路由算法,确定从数据 解码模块接收的解码后的数据要发送的输出方向端口,所述基于阻塞感知的异步电路自适 应路由算法的原理为:不再被动的执行路由策略,而是通过对路由环境中阻塞信息的监控, 结合"最短路径策略",动态的调整下一跳的路由节点,尽可能规避阻塞严重或出现故障的 路由节点,减小路由延迟,即在当前异步路由节点进行路由计算前,检测路由方向上的局部 阻塞信号,优先选择状态为空闲的异步路由节点。
[0026] 由于本异步片上网络采用的是2D_Torus拓扑结构,因此在路由过程中,有可能会 出现等距离的情况,即目旳节点分别从北向和南向距离当前节点的长度相同,或者目的节 点分别从东向和西向距离当前节点的长度相同。基于阻塞感知的异步电路自适应路由算法 中,等距离情况下,优先判断为东/北方向的路径,即,目的节点分别从东向和西向距离当 前节点的长度相同时,优先判断为东向输出路径,目的节点分别从北向和南向距离当前节 点的长度相同时,优先判断为北向输出路径。
[0027] 基于阻塞感知的异步电路自适应路由算法如下:
[0028] 设定源节点为S(x_s,y_s),目的节点为D(x_dst,y_dst),当前节点为C(x,y)。路 由开始时,当前节点即为源节点,即C(x,y) = S(x_s,y_s);同时每个异步路由节点具有8 个方位,分别为东、南、西、北、东北、东南、西北和西南;同时设定该异步2D-Torus片上网络 的(〇,〇)节点位于该片上网络的左下角。采用full信号作为传输方向的局部阻塞信号,该 信号为〇时代表路由节点某一路由方向不阻塞,为1时代表路由节点的某一路由方向阻塞; 所述full信号,包括:full_e信号、full_w信号、full_s信号和full_n信号;所述full_ e信号代表东向输出路径的阻塞状态,所述full_w信号代表西向输出路径的阻塞状态, full_s信号代表南向输出路径的阻塞状态,full_n信号代表北向输出路径的阻塞状态;对 于所述的NXN的异步2D-Torus片上网络,则有:
[0029] A如果目的节点在当前节点的东、南、西、北四个方向,则不需要对数据输出路径的 阻塞情况进行判断,包括如下几种情况:
[0030] (1)若y_dst = y,x_dst = X,即目的节点为当前节点,则当前节点将数据发送到 该当前节点本地端口的IP核;
[0031] (2)若 y_dst = y,且是否 x_dst = (x-i)mod(N),其中 i = 1,2,…,t,t 为整数, 且

【权利要求】
1. 一种路由自适应异步2D-Torus片上网络,包括:多个异步路由节点、挂载在不同的 异步路由节点上的多种IP核;其特征在于:所述多个异步路由节点按照2D-Torus拓扑结 构和异步握手通信机制构建该异步2D-Torus片上网络; 所述异步路由节点具有东向、西向、南向、北向和本地端口共五个端口,其中本地端口 挂载所需的IP核,用于对从异步路由节点接收的数据进行相应的处理;东向、西向、南向、 北向端口作为与相邻异步路由节点的连接端口,接收上游异步路由节点的数据帧,同时经 过路由计算与数据仲裁,确定合适的输出方向端口,通过该端口将数据传递给下游异步路 由节点; 所述东向、西向、南向、北向和本地端口中每一端口,均包括输入端、数据接收模块、数 据解码模块、路由计算模块、交叉开关模块、数据仲裁模块、数据编码模块、数据发送模块和 输出端; 上游异步路由节点某端口的数据帧从当前异步路由节点某相应端口的输入端进来后, 依次经过数据接收模块、数据解码模块、路由计算模块、交叉开关模块、数据仲裁模块、数据 编码模块和数据发送模块,从当前异步路由节点该端口的输出端输出至下游异步路由节点 的某相应端口; 所述数据接收模块,用于从端口的输入端接收数据,并将该数据传送至数据解码模 块; 所述数据解码模块,用于接收数据接收模块传送的数据并对该数据进行解码,并把解 码后的数据发送至路由计算模块; 所述路由计算模块,用于利用基于阻塞感知的异步电路自适应路由算法,确定从数据 解码模块接收的解码后的数据要发送的输出方向端口; 所述交叉开关模块,用于将解码后的数据发送到路由计算模块确定的端口的数据仲裁 模块; 所述数据仲裁模块,用于接收除本端口以外的其他端口的交叉开关模块发送来的数 据;对所接收的数据进行数据发送优先级仲裁;按照仲裁的数据发送优先级顺序,将数据 发送至数据编码模块; 所述数据编码模块,用于接收数据仲裁模块发送的数据,并对接收的数据进行编码,将 编码后的数据发送至数据发送模块; 所述数据发送模块,用于将从数据编码模块接收的数据发送至输出端。
2. 根据权利要求1所述的路由自适应异步2D-T〇rUS片上网络,其特征在于:所述的路 由计算模块利用基于阻塞感知的异步电路自适应路由算法,确定从数据解码模块接收的解 码后的数据要发送的输出方向端口,基于阻塞感知的异步电路自适应路由算法如下: 设定源节点为S(x_s,y_s),目的节点为D(x_dst,y_dst),当前节点为C(x,y);路由 开始时,当前节点即为源节点,即C(x,y) =S(x_s,y_s);同时每个异步路由节点具有8个 方位,分别为东、南、西、北、东北、东南、西北和西南;同时设定该异步2D-Torus片上网络的 (〇,〇)节点位于该片上网络的左下角;采用full信号作为传输方向的局部阻塞信号,该信 号为〇时代表路由节点某一路由方向不阻塞,为1时代表路由节点的某一路由方向阻塞;所 述full信号,包括:full_e信号、full_w信号、full_s信号和full_n信号;所述full_e信 号代表东向输出路径的阻塞状态,所述full_w信号代表西向输出路径的阻塞状态,full_s 信号代表南向输出路径的阻塞状态,full_n信号代表北向输出路径的阻塞状态;对于所述 的NXN的异步2D-Torus片上网络,则有: A如果目的节点在当前节点的东、南、西、北四个方向,则不需要对数据输出路径的阻塞 情况进行判断,包括如下几种情况: (1) 若y_dst=y,x_dst=X,即目的节点为当前节点,则当前节点将数据发送到该当 前节点本地端口的IP核; (2) 若y_dst=y,且是否x_dst= (x-i)mod(N),其中i= 1,2,…,t,t为整数,且 是,即目的节点在当前节点的西向,则当前节点将数据发送到西向端口进行输 出,否,即目的节点在当前节点的东向,则当前节点将数据发送到东向端口进行输出; (3) 若x_dst=X,且是否y_dst= (y-i)mod(N),是,即目的节点在当前节点的南向,贝丨J 当前节点将数据发送到南向端口进行输出;否,即目的节点在当前节点的北向,则当前节点 将数据发送到北向端口进行输出; B如果目的节点在当前节点的东北、东南、西北和西南四个方向,则需要对数据输出路 径的阻塞情况进行判断,且以P代表东、西两个方向之一,以Q代表南、北两个方向之一,包 括如下几种情况:1)若当前节点的P、Q两个方向的数据输出路径均为无阻塞,则结合该当 前节点上一时刻路由的输出情况,采取轮转策略,决定下一跳路由节点,即,若上一次数据 中贞输出方向为P,则此次选择Q方向输出,若上一次数据巾贞的输出方向为Q,则此次选择P方 向输出;2)若当前节点的P、Q两个方向均存在阻塞,此时无法进行数据帧传输,数据保存在 当前路由节点的缓存中并等待,直至网络阻塞情况发生变化;3)若当前节点的P、Q两个方 向中任一方向出现阻塞,当前路由节点立即可以通过阻塞信号得到反馈,进而调整数据帧 原来的路由方向,选择畅通的路径进行路由,具体包括如下几种情况: a. gy_dst= (y_i)mod(N),x_dst= (x-i)mod(N),则目的节点在当前节点的西南向, 此时,当前节点的路由计算模块需判断西向和南向输出路径的阻塞情况,若西向阻塞即, full_w= 1,而南向不阻塞即full_s= 0,则当前节点将数据发送到南向端口进行输出;否 贝1J,当前节点将数据发送到西向端口进行输出; b. gy_dst= (y_i)mod(N),x_dst= (x+j)mod(N),其中j=l,2,...,k,且N为奇数 时,λ= ^1,N为偶数时,则目的节点在当前节点的东南向,此时,当前节点的路由 计算模块需判断东向和南向输出路径的阻塞情况,若东向阻塞即full_e= 1而南向不阻塞 即full_s= 0,则当前节点将数据发送到南向端口进行输出;否则,当前节点将数据发送到 东向端口进行输出; c. gy_dst= (y+j)mod(N),x_dst= (x-i)mod(N),则目的节点在当前节点的西北 向,此时,当前节点的路由计算模块需判断西向和北向输出路径的阻塞情况,若西向阻塞即 full_w= 1,而北向不阻塞即full_n= 0,则当前节点将数据发送到北向端口进行输出;否 贝1J,当前节点将数据发送到西向端口进行输出; d. 若y_dst= (y+j)mod(N),x_dst= (x+j)mod(N),则目的节点在当前节点的东北 向,此时,当前节点的路由计算模块需判断东向和北向输出路径的阻塞情况,若东向阻塞即 full_e= 1,而北向不阻塞即full_n= 0,则当前节点将数据发送到北向端口进行输出;否 贝1J,当前节点将数据发送到东向端口进行输出。
3.权利要求1所述的路由自适应异步2D-T〇rUS片上网络的设计方法,采用异步电路设 计方法学对该片上网络进行设计,其特征在于:包括如下步骤: 一、利用Petri网异步电路图形表示法设计异步路由节点具有的各个端口的接口行 为,并对异步路由节点内部的数据流向进行描述; 二、对该异步片上网络中传输数据的数据结构进行设计; 三、 利用异步有限状态机的方法设计端口中的模块,得到异步有限状态机的状态转换 图;所述端口中的模块,包括:数据接收模块、数据解码模块、路由计算模块、交叉开关模 块、数据仲裁模块、数据编码模块和数据发送模块; 四、 根据异步有限状态机的状态转换图,利用SystemVerilog语言完成各个模块的硬 件编程; 五、 利用步骤四完成的各个模块构建异步路由节点; 六、 利用NXN个异步路由节点按照2D-Torus拓扑结构和异步握手通信机制构建NXN 的路由自适应异步2D-Torus片上网络及其设计方法。
【文档编号】H04L12/865GK104320341SQ201410571169
【公开日】2015年1月28日 申请日期:2014年10月23日 优先权日:2014年10月23日
【发明者】李贞妮, 李晶皎, 方志强 申请人:东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1