《适用于全局异步局部同步片上互连网络的路由器装置.pdf》由会员分享,可在线阅读,更多相关《适用于全局异步局部同步片上互连网络的路由器装置.pdf(23页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102629913 A (43)申请公布日 2012.08.08 C N 1 0 2 6 2 9 9 1 3 A *CN102629913A* (21)申请号 201210104961.8 (22)申请日 2012.04.11 H04L 12/56(2006.01) (71)申请人浙江大学 地址 310027 浙江省杭州市西湖区浙大路 38号 (72)发明人刘鹏 钱盛涛 邬可俊 刘扬帆 黄春明 王维东 姚庆栋 (74)专利代理机构杭州中成专利事务所有限公 司 33212 代理人金祺 (54) 发明名称 适用于全局异步局部同步片上互连网络的路 由器装置 (57) 摘要 。
2、本发明公开了一种适用于全局异步局部同步 片上互连网络的路由器装置,具有3个流水级,在 BW/RC级对微片进行缓存和时钟域的转换,并利 用时钟域转换的延迟对数据包进行路由计算和对 计算结果的同步;在VA/SA级以投机的方式同时 对虚通道和交叉开关的使用权进行申请,虚通道 分配器对虚通道请求做出仲裁,交叉开关分配器 只对非投机微片的交叉开关请求进行仲裁,并直 接将虚通道请求的仲裁结果直接做为微片投机申 请交叉开关的仲裁结果,交叉开关分配器优先选 择非投机交叉开关请求的仲裁结果做为最终的交 叉开关分配结果;在ST级,交叉开关选择器根据 交叉开关的仲裁结果,连通相应虚通道的输入端 口至输出端口,微片离。
3、开异步缓存通过路由器。 (51)Int.Cl. 权利要求书3页 说明书13页 附图6页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 13 页 附图 6 页 1/3页 2 1.适用于全局异步局部同步片上互连网络的路由器装置,其特征是: 所述路由器具有3个流水级,分别为写缓存和路由计算(BW/RC)、虚通道分配和交叉开 关分配(VA/SA)、以及通过路由器(ST); 该路由器在BW/RC级对微片进行缓存和时钟域的转换,并利用时钟域转换的延迟对数 据包进行路由计算和对计算结果的同步;在VA/SA级以投机的方式同时对虚通道和交叉开 关的使用权进行申请,虚通道。
4、分配器对虚通道请求做出仲裁,交叉开关分配器只对非投机 微片的交叉开关请求进行仲裁,并直接将虚通道请求的仲裁结果直接做为微片投机申请交 叉开关的仲裁结果,交叉开关分配器优先选择非投机交叉开关请求的仲裁结果做为最终的 交叉开关分配结果;在ST级,交叉开关选择器根据交叉开关的仲裁结果,连通相应虚通道 的输入端口至输出端口,微片离开异步缓存通过路由器。 2.根据权利要求1所述的适用于全局异步局部同步片上互连网络的路由器装置,其特 征是: 在全局异步局部同步的片上互连网络路由器中,利用异步先入先出缓存对微片进行时 钟域转换的延迟对数据包头微片进行路由计算,并在微片可在异步先入先出缓存的读端口 被读取时可。
5、供后续电路使用; 在路由器的交叉开关分配器中,直接采用虚通道分配的结果做为投机交叉请求的仲裁 结果。 3.根据权利要求2所述的适用于全局异步局部同步片上互连网络的路由器装置,其特 征是: 路由器在网络中的最小传输单位是微片,所述微片由微片头和载荷两部分组成;微片 头包含微片的类型、源地址和目的地址信息,载荷为微片传输的有效数据;路由器根据每个 数据包头微片中的微片头中的信息进行路由计算。 4.根据权利要求1、2或3所述的适用于全局异步局部同步片上互连网络的路由器装 置,其特征是: 所述路由器装置包括: 多个物理通道用于物理微片的传输,物理通道的宽度为一个微片宽度,每个物理通道 可以提供多个虚通。
6、道,在输入通道中使用异步先入先出缓存构建虚通道缓存,输出通道不 提供通道缓存,缓存宽度为一个微片宽度,深度可为2的N次方; 多个路由计算单元,分布在输入通道的入口,根据输入微片的微片头信息决定微片的 转发方向,每个输入通道中的虚通道之间共享一个路由计算单元; 多个输入信号分配器,根据微片携带的虚通道编号将数据和控制信号传递给相应的虚 通道缓存和虚通道状态寄存器; 多组虚通道状态寄存器,用于记录虚通道的状态,并拥有相应的逻辑电路根据虚通道 状态寄存器的值产生虚通道请求和交叉开关请求;每条虚通道都拥有独立的虚通道状态寄 存器和请求产生逻辑; 多个分布式虚通道分配器,每个输出通道拥有一个虚通道分配器。
7、,当同时存在多个虚 通道请求时,根据一定的仲裁策略选择其中一个请求获得虚通道的使用权;虚通道分配器 根据下一跳路由器中虚通道的占用状态维护一个可被分配的虚通道队列,从中选择一条虚 通道分配给赢得仲裁的请求; 权 利 要 求 书CN 102629913 A 2/3页 3 多个分布式交叉开关分配器,每个输出通道拥有一个交叉开关分配器,对非投机的交 叉开关请求进行仲裁,并使用虚通道分配器的仲裁结果作为投机交叉开关请求的仲裁结 果,交叉开关分配器优先选择非投机交叉开关请求的仲裁结果; 多个分布式交叉开关选择器,每个输出通道拥有一个交叉开关选择器,根据交叉开关 分配器的仲裁结果提供输入虚通道到输出通道的。
8、连接。 5.根据权利要求4所述的适用于全局异步局部同步片上互连网络的路由器装置,其特 征是: 路由器工作在多个时钟域,适用于全局异步局部同步的片上互连网络;路由器每个输 入通道中的异步先入先出缓存的写端口,路由计算单元、输入信号分配器和部分虚通道状 态寄存器工作在各自的时钟域,时钟信号由与输入通道相连的上一跳路由器提供;微片通 过异步先入先出缓存同步到路由器本地时钟域,即异步先入先出缓存的读端口工作在路由 器本地时钟域;路由器中的另一部分虚通道状态寄存器、虚通道分配器、交叉开关分配器、 以及交叉开关选择器等均工作在路由器的本地时钟域;路由器中的微片、传输请求和控制 信号都由路由器本地时钟域同步。
9、后向下一跳路由器输出,路由器的本地时钟也同时传输到 下一跳路由器;路由器的每一个输入通道都可以连接一个不同时钟域的信号,构成全局异 步局部同步的片上互连网络; 路由器为每个输入通道提供一个路由计算单元,使用一定的路由算法对数据包的头微 片进行路由计算;当数据包中的其他微片进入输入通道时,不需要进行路由计算,直接使用 头微片获得的路由计算结果;路由计算与微片写入异步先入先出缓存在同一个时钟周期进 行;在微片传输的同时,上一跳路由器提供微片所使用的虚通道号,用于选择本级路由器中 的相应虚通道缓存和状态寄存器的控制信号;微片写缓存和路由计算在BW/RC级完成; 路由器为每个输入通道提供一个输入信号分。
10、配器,根据微片携带的虚通道编号,将微 片数据写入相应编号的虚通道缓存,并将路由计算结果写入相应编号的虚通道状态寄存 器; 路由器为每个虚通道提供一组虚通道状态寄存器,记录数据包路由计算的结果、异步 先入先出缓存的空满指示、虚通道的占用状态、虚通道申请的结果、以及得到的虚通道编 号;保存路由结果的寄存器和虚通道满状态的寄存器工作在上一跳路由器的时钟域,其他 寄存器均工作在本地路由器的时钟域;虚通道的满信号和占用状态需要反馈给上一跳路由 器,用于流量控制和虚通道分配;路由器为每组虚通道状态寄存器提供相应的逻辑产生虚 通道的申请和交叉开关的申请,请求信号在VA/SA级产生; 路由器提供多个虚通道分配。
11、器,用于为数据包分配一条下一跳路由器中的虚通道;虚 通道分配器根据下一跳路由器反馈的信号维护虚通道分配状态的列表,虚通道占用状态是 产生于下一跳路由器本地时钟域的信号,虚通道分配器提供同步器将虚通道占用状态同步 到虚通道分配器所在的时钟域;当有多个数据包同时申请虚通道时,虚通道分配器中的仲 裁单元使用一定的算法选出优先级最高的数据包获得虚通道的使用权,并将可用虚通道的 编号反馈给该数据包所在虚通道的状态寄存器;虚通道分配器将向交叉开关分配器提供虚 通道分配的结果,用于交叉开关的投机申请;虚通道分配的过程在VA/SA级完成; 路由器提供多个交叉开关分配器,每个交叉开关分配器分别控制一个交叉开关选。
12、择 器;每个交叉开关分配器具有一个仲裁单元,用于对非投机数据包的交叉开关请求做出仲 权 利 要 求 书CN 102629913 A 3/3页 4 裁;已经获得下一跳路由器中虚通道使用权的数据包称为非投机数据包,未获得下一跳路 由器中虚通道使用权的数据包称为投机数据包;交叉开关分配器使用虚通道分配器提供的 虚通道分配结果做为投机交叉开关请求的仲裁结果;当有非投机数据包参与交叉开关的分 配时,选择非投机的交叉开关请求的仲裁结果做为最终的交叉开关分配结果;当没有非投 机数据包参与交叉开关分配时,选择投机交叉开关请求的仲裁结果做为最终的交叉开关分 配结果;交叉开关分配的过程在VA/SA级完成; 路由器。
13、提供多个全连接的交叉开关选择器,每个交叉开关选择器负责一个路由器输出 端口;每条虚通道都拥有一个交叉开关选择器输入端口,可以直接连接到任意一个交叉开 关选择器的输出端口;每个交叉开关选择器的连接配置由交叉开关分配器决定;获得交叉 开关使用权的微片在交叉开关配置完成后离开虚通道缓存到达路由器的输出端口,该过程 在ST级完成。 权 利 要 求 书CN 102629913 A 1/13页 5 适用于全局异步局部同步片上互连网络的路由器装置 技术领域 0001 本发明涉及一种适用于全局异步局部同步片上互连网络的路由器装置。 背景技术 0002 随着集成电路工艺的不断进步,单芯片上能够集成的知识产权核越。
14、来越多,系统 对通信带宽的需求也越来越大。在传统的芯片中,通常使用总线作为各个设备之间通信的 主要结构,然而一条总线同时只能支持一对设备之间的通信,总线带宽不会随着总线设备 数目的增加而增加,却面临着延迟和功耗增大等问题,已经无法满足各知识产权核之间的 通信需求。于是,研究人员借鉴并行计算机互连网络技术,提出片上互连网络用于取代总线 为片上各个知识产权核提供通信服务。片上互连网络成为大规模片上互连的优选解决方案 之 0003 路由器是构成片上互连网络的核心部件,数据包以跳步的形式经过路径上的每一 个路由器到达目的地。在片上互连网络中,通常采用虫孔交换。数据包以微片为基本单位 在网络中传输,一个。
15、数据包可以划分为一个头微片,若干个体微片和一个尾微片,按顺序依 次在网络中传输。数据包需要申请路由器中的资源以通过路由器向下一跳路由器传输,所 需的资源包括下一跳路由器的虚通道缓存和本级路由器的交叉开关使用权。虚通道缓存的 分配以数据包为单位,由数据包的头微片申请,一个数据包内的所有微片共用同一个虚通 道缓存,并且只能使用该虚通道缓存,虚通道缓存被一个数据包使用时,其他数据包不能使 用该虚通道缓存。交叉开关的分配以微片为单位,数据包中的每个微片都需要独立地申请 交叉开关的使用权。通常,数据包通过路由器包括如下5个步骤: 0004 1)写缓存:路由器在输入通道中提供缓存用于暂时存储数据包中的微片。
16、。一个输 入通道提供多个虚通道缓存用于存储来自不同数据包的微片。虚通道之间共享路由器的物 理链路。在路由器之间传输微片的同时,需要传输微片所要写入的虚通道编号,路由器根据 虚通道编号将微片写入相应的虚通道缓存。微片将一直保存在虚通道缓存中,直到它可以 离开路由器继续传输。 0005 2)路由计算:数据包的头微片包含路由信息,当头微片从虚通道缓存中读取后, 路由器提取头微片中的路由信息,计算数据包的输出端口。 0006 3)虚通道分配:数据包根据路由计算的结果,向相应输出端口的虚通道分配器申 请一个与该输出端口连接的下一跳路由器中的虚通道。可能同时存在多个虚通道请求,虚 通道分配器将在请求之间做。
17、出仲裁,选择出获得仲裁的请求,并返回该请求可以使用的虚 通道编号。 0007 4)交叉开关分配:数据包获得下一跳路由器虚通道的使用权后,头微片向位于同 一个输出端口的交叉开关分配器申请交叉开关的使用权。可能同时存在多个交叉开关请 求,交叉开关分配器将在请求之间做出仲裁,选择出获得仲裁的请求,允许其使用交叉开 关。 0008 5)通过路由器:当微片赢得了交叉开关仲裁后,离开虚通道缓存通过路由器向下 说 明 书CN 102629913 A 2/13页 6 一跳路由器传输。 0009 对于体微片和尾微片,它们通过路由器时不需要经过步骤2和3。同一个数据包内 的所有微片拥有相同的路由结果并使用同一条虚。
18、通道。尾微片离开虚通道时,将释放由头 微片保留的虚通道。 0010 对上述5个步骤进行流水化处理可提高路由器的工作频率,每个步骤成为一个流 水级依次执行,在网络零负载的条件下,一个微片通过路由器需要5个时钟周期。 0011 为了减小网络的传输延迟,需要缩小微片通过路由器的延迟。在不影响路由器工 作频率的前提下,缩短路由器的流水级数可以达到目的。缩短流水级的方法是流水级的并 行执行。 0012 与本发明相关的现有技术具体如下: 0013 1、现有技术一的技术方案: 0014 现有的路由器为了使微片从虚通道中读取后直接进入虚通道分配阶段,采用前瞻 路由。前瞻路由要求在上一跳路由器中计算下一跳路由器。
19、中使用的路由结果,并通过路由 器之间的物理通道把路由计算结果传输给下一跳路由器。路由计算结果和微片一起写入虚 通道缓存。微片从虚通道缓存读取的同时,读取路由计算结果,用于虚通道分配。该技术需 要扩展虚通道缓存的位宽,用于保存路由计算的结果,增加的位宽等于路由计算结果信号 的位宽。微片和路由计算结果从虚通道缓存中读取后,路由计算结果用于虚通道分配,如果 微片是头微片,则对微片在下一跳路由器中将使用的路由结果进行计算。读取后的微片和 下一跳路由器中使用的路由计算结果一起传输至下一跳路由器。前瞻路由的实现如图1所 示,每个虚通道需要配置一个路由计算单元。与常见的5级流水路由器相比,前瞻路由的物 理开。
20、销在于路由器之间用于传输路由结果的物理连线和虚通道缓存中用于保存路由计算 结果的寄存器开销。 0015 其存在着以下缺点: 0016 前瞻路由的缺点在于路由器之间额外的用于传输路由计算结果的物理连线开销 和虚通道缓存开销。1)在全局异步局部同步的片上互连网络中,由于对微片进行时钟域转 换需要3个读时钟周期,发明人发现:可以利用这段时间进行路由计算,即在本级路由器中 进行路由计算,从而不需要路由器之间的连线开销,路由计算的结果可以在3个读时钟周 期内完成,当微片可以从虚通道缓存读端口读取时,路由计算的结果也准备就绪。2)前瞻路 由要求扩展虚通道缓存中的每一项的位宽,用于存储路由计算结果,增加了缓。
21、存的成本。发 明人发现:只有在传输头微片时路由计算结果才是有效的,在传输其他微片时路由计算结 果是无效的,虚通道缓存中的项用于存储其他微片时,路由计算结果扩展位是无效的。一个 数据包仅有一个头微片,路由计算结果扩展位的利用率很低。3)前瞻路由不能减小对路由 计算单元数量的需求。 0017 2、现有技术二的技术方案 0018 文献1(L.S.Peh,W.J.Dal ly.A delay model and speculative architecture for pipel ined routers.Proceedings of the 7th International Symposium o。
22、n High-Performance Computer Architecture,2001.pp.255-266)提出了交叉开关使用权的 投机申请方式,交叉开关分配器同时接受投机的交叉开关请求和非投机的交叉开关请求, 使用两个仲裁器分别对投机的交叉开关请求和非投机的交叉开关请求进行仲裁。非投机的 说 明 书CN 102629913 A 3/13页 7 交叉开关请求的优先级高于投机的交叉开关请求。当存在非投机的交叉开关请求时,投机 的交叉开关请求被忽略。交叉开关使用权的投机申请允许数据包的头微片在申请虚通道使 用权的同时申请交叉开关的使用权。在网络零负载的条件下,虚通道请求和交叉开关请求 可以同。
23、时得到满足。文献1的交叉开关分配器如图2所示,每个虚通道中的微片拥有两种 交叉开关请求,非投机交叉开关请求和投机交叉开关请求,同一时刻只能有一种交叉开关 请求有效,当请求有效时,请求信号为高电平。每个虚通道都可以向交叉开关分配器申请交 叉开关的使用,当有多个虚通道中的微片申请交叉开关的使用权时,进入交叉开关分配器 的投机(非投机)请求信号有多个比特为高电平,仲裁器对请求信号进行仲裁,保证只有一 个投机(非投机)交叉开关请求可以获得仲裁,仲裁器输出的仲裁结果中,获得仲裁的请求 的相应比特位为高电平,其余位均为低电平。非投机的交叉开关请求的仲裁结果经过逻辑 或门,判断是否存在非投机的交叉开关请求。。
24、当或门的输出为高电平时,表示存在非投机的 交叉开关请求,则选择器选择非投机的交叉开关仲裁结果做为交叉开关分配结果;当或门 的输出为低电平时,表示不存在非投机的交叉开关请求,则选择器选择投机的交叉开关仲 裁结果作为交叉开关分配结果。 0019 其存在着以下缺点: 0020 在网络零负载的条件下,当数据包的头微片出现在虚通道缓存的读端口时,同时 产生虚通道请求和投机的交叉开关请求。由于不存在竞争,虚通道分配和交叉开关分配的 结果都是相同的,将许可授予了同一个微片。这样,微片可以在下一个时钟周期离开虚通道 缓存向下一跳路由器传输。文献1的虚通道分配器和交叉开关分配器之间是相互独立的, 即两者拥有独立。
25、的请求和仲裁,虚通道分配的结果和交叉开关分配的结果是不相关的。当 路由器中只有一个数据包时,虚通道和交叉开关的使用权都将授予同一个微片,则微片虚 通道申请是成功的,投机的交叉开关申请也是成功的。但是,当路由器中同时存在多个数据 包时,虚通道和交叉开关分配的结果可能是不同的。如有两个数据包,数据包1和数据包2, 分别缓冲在不同的虚通道缓存中。两个数据包的头微片在同一个时钟周期到达各自虚通道 缓存的读端口,并产生虚通道请求和投机的交叉开关请求。由于虚通道分配和交叉开关分 配的过程是相互独立的,可能出现两种分配结果。1)虚通道和交叉开关的使用权分配给了 同一个微片,如数据包1的头微片,则数据包1的头。
26、微片的投机是成功的,下一个时钟周期 就可以离开当前路由器。2)虚通道和交叉开关的使用权分配给了不同的微片,如虚通道的 使用权授予了数据包1的头微片,交叉开关的使用权授予了数据包2的头微片。由于没有 一个微片能够同时获得虚通道和交叉开关的使用权,下一个时钟周期,两个微片都不能离 开当前路由器,投机的目的没有达到。在存在多个数据包同时投机的情况下,文献1方案的 投机成功率不能达到100,原因是文献1的设计不能保证虚通道分配和投机交叉开关分 配的许可都授予同一个微片。 0021 文献1的交叉开关分配器需要使用两个仲裁器分别对非投机的交叉开关请求和 投机的交叉开关请求进行仲裁,而在普通的5级流水的路由。
27、器的交叉开关分配器中,只需 要一个仲裁器,与之间比增加了电路开销。 发明内容 0022 本发明要解决的技术问题是提供一种适用于全局异步局部同步片上互连网络的 说 明 书CN 102629913 A 4/13页 8 路由器装置,该路由器适用于全局异步局部同步的片上互连网络,采用路由计算和写缓存 并行执行和交叉开关投机申请技术,缩短路由器的流水级数,减小微片通过路由器的延迟。 0023 为了解决上述技术问题,本发明提供一种适用于全局异步局部同步片上互连网络 的路由器装置,其特征是: 0024 路由器具有3个流水级,分别为写缓存和路由计算(BW/RC)、虚通道分配和交叉开 关分配(VA/SA)、以及。
28、通过路由器(ST); 0025 该路由器在BW/RC级对微片进行缓存和时钟域的转换,并利用时钟域转换的延迟 对数据包进行路由计算和对计算结果的同步;在VA/SA级以投机的方式同时对虚通道和交 叉开关的使用权进行申请,虚通道分配器对虚通道请求做出仲裁,交叉开关分配器只对非 投机微片的交叉开关请求进行仲裁,并直接将虚通道请求的仲裁结果直接做为微片投机申 请交叉开关的仲裁结果,交叉开关分配器优先选择非投机交叉开关请求的仲裁结果做为最 终的交叉开关分配结果;在ST级,交叉开关选择器根据交叉开关的仲裁结果,连通相应虚 通道的输入端口至输出端口,微片离开异步缓存通过路由器。 0026 作为本发明的适用于全。
29、局异步局部同步片上互连网络的路由器装置的改进: 0027 在全局异步局部同步的片上互连网络路由器中,利用异步先入先出缓存对微片进 行时钟域转换的延迟对数据包头微片进行路由计算,并在微片可在异步先入先出缓存的读 端口被读取时可供后续电路使用; 0028 在路由器的交叉开关分配器中,直接采用虚通道分配的结果做为投机交叉请求的 仲裁结果。 0029 作为本发明的适用于全局异步局部同步片上互连网络的路由器装置的进一步改 进:路由器在网络中的最小传输单位是微片,微片由微片头和载荷两部分组成;微片头包 含微片的类型、源地址和目的地址信息,载荷为微片传输的有效数据;路由器根据每个数据 包头微片中的微片头中的。
30、信息进行路由计算。 0030 作为本发明的适用于全局异步局部同步片上互连网络的路由器装置的进一步改 进:所述路由器装置包括: 0031 多个物理通道用于物理微片的传输,物理通道的宽度为一个微片宽度,每个物理 通道可以提供多个虚通道,在输入通道中使用异步先入先出缓存构建虚通道缓存,输出通 道不提供通道缓存,缓存宽度为一个微片宽度,深度可为2的N次方; 0032 注:物理通道中的一部分为输入通道,剩余的为输出通道;N为非负整数,即深度 可为1,2,4,8; 0033 多个路由计算单元,分布在输入通道的入口,根据输入微片的微片头信息决定微 片的转发方向,每个输入通道中的虚通道之间共享一个路由计算单元。
31、; 0034 多个输入信号分配器,根据微片携带的虚通道编号将数据(微片数据信号114)和 控制信号(微片写使能信号112、路由计算结果127和路由结果有效信号132)传递给相应 的虚通道缓存和虚通道状态寄存器; 0035 多组虚通道状态寄存器,用于记录虚通道的状态,并拥有相应的逻辑电路根据虚 通道状态寄存器的值产生虚通道请求和交叉开关请求;每条虚通道都拥有独立的虚通道状 态寄存器和请求产生逻辑; 0036 多个分布式虚通道分配器,每个输出通道拥有一个虚通道分配器,当同时存在多 说 明 书CN 102629913 A 5/13页 9 个虚通道请求时,根据一定的仲裁策略选择其中一个请求获得虚通道的。
32、使用权;虚通道分 配器根据下一跳路由器中虚通道的占用状态维护一个可被分配的虚通道队列,从中选择一 条虚通道分配给赢得仲裁的请求; 0037 多个分布式交叉开关分配器,每个输出通道拥有一个交叉开关分配器,对非投机 的交叉开关请求进行仲裁,并使用虚通道分配器的仲裁结果作为投机交叉开关请求的仲裁 结果,交叉开关分配器优先选择非投机交叉开关请求的仲裁结果; 0038 多个分布式交叉开关选择器,每个输出通道拥有一个交叉开关选择器,根据交叉 开关分配器的仲裁结果提供输入虚通道到输出通道的连接。 0039 作为本发明的适用于全局异步局部同步片上互连网络的路由器装置的进一步改 进: 0040 路由器工作在多个。
33、时钟域,适用于全局异步局部同步的片上互连网络;路由器每 个输入通道中的异步先入先出缓存的写端口,路由计算单元、输入信号分配器和部分虚通 道状态寄存器工作在各自的时钟域,时钟信号由与输入通道相连的上一跳路由器提供;微 片通过异步先入先出缓存同步到路由器本地时钟域,即异步先入先出缓存的读端口工作在 路由器本地时钟域;路由器中的另一部分虚通道状态寄存器、虚通道分配器、交叉开关分配 器、以及交叉开关选择器等均工作在路由器的本地时钟域;路由器中的微片、传输请求和控 制信号都由路由器本地时钟域同步后向下一跳路由器输出,路由器的本地时钟也同时传输 到下一跳路由器;路由器的每一个输入通道都可以连接一个不同时钟。
34、域的信号,构成全局 异步局部同步的片上互连网络; 0041 路由器为每个输入通道提供一个路由计算单元,使用一定的路由算法对数据包的 头微片进行路由计算;当数据包中的其他微片进入输入通道时,不需要进行路由计算,直接 使用头微片获得的路由计算结果;路由计算与微片写入异步先入先出缓存在同一个时钟周 期进行;在微片传输的同时,上一跳路由器提供微片所使用的虚通道号,用于选择本级路由 器中的相应虚通道缓存和状态寄存器的控制信号;微片写缓存和路由计算在BW/RC级完 成; 0042 路由器为每个输入通道提供一个输入信号分配器,根据微片携带的虚通道编号, 将微片数据写入相应编号的虚通道缓存,并将路由计算结果写。
35、入相应编号的虚通道状态寄 存器; 0043 路由器为每个虚通道提供一组虚通道状态寄存器,记录数据包路由计算的结果、 异步先入先出缓存的空满指示、虚通道的占用状态、虚通道申请的结果、以及得到的虚通道 编号;保存路由结果的寄存器和虚通道满状态的寄存器工作在上一跳路由器的时钟域,其 他寄存器均工作在本地路由器的时钟域;虚通道的满信号和占用状态需要反馈给上一跳路 由器,用于流量控制和虚通道分配;路由器为每组虚通道状态寄存器提供相应的逻辑产生 虚通道的申请和交叉开关的申请,请求信号在VA/SA级产生; 0044 路由器提供多个虚通道分配器,用于为数据包分配一条下一跳路由器中的虚通 道;虚通道分配器根据下。
36、一跳路由器反馈的信号维护虚通道分配状态的列表,虚通道占用 状态是产生于下一跳路由器本地时钟域的信号,虚通道分配器提供同步器将虚通道占用状 态同步到虚通道分配器所在的时钟域;当有多个数据包同时申请虚通道时,虚通道分配器 中的仲裁单元使用一定的算法选出优先级最高的数据包获得虚通道的使用权,并将可用虚 说 明 书CN 102629913 A 6/13页 10 通道的编号反馈给该数据包所在虚通道的状态寄存器;虚通道分配器将向交叉开关分配器 提供虚通道分配的结果,用于交叉开关的投机申请;虚通道分配的过程在VA/SA级完成; 0045 路由器提供多个交叉开关分配器,每个交叉开关分配器分别控制一个交叉开关选。
37、 择器;每个交叉开关分配器具有一个仲裁单元,用于对非投机数据包的交叉开关请求做出 仲裁;已经获得下一跳路由器中虚通道使用权的数据包称为非投机数据包,未获得下一跳 路由器中虚通道使用权的数据包称为投机数据包;交叉开关分配器使用虚通道分配器提供 的虚通道分配结果做为投机交叉开关请求的仲裁结果;当有非投机数据包参与交叉开关的 分配时,选择非投机的交叉开关请求的仲裁结果做为最终的交叉开关分配结果;当没有非 投机数据包参与交叉开关分配时,选择投机交叉开关请求的仲裁结果做为最终的交叉开关 分配结果;交叉开关分配的过程在VA/SA级完成; 0046 路由器提供多个全连接的交叉开关选择器,每个交叉开关选择器负。
38、责一个路由器 输出端口;每条虚通道都拥有一个交叉开关选择器输入端口,可以直接连接到任意一个交 叉开关选择器的输出端口;每个交叉开关选择器的连接配置由交叉开关分配器决定;获得 交叉开关使用权的微片在交叉开关配置完成后离开虚通道缓存到达路由器的输出端口,该 过程在ST级完成。 0047 本发明提供的适用于片上多处理器和多处理器系统芯片的片上互连网络的路由 器装置。 0048 本发明采用模块化设计,路由器的路由计算单元、输入信号分配器、虚通道状态寄 存器、申请产生逻辑、虚通道分配器、交叉开关分配器、以及交叉开关选择器均设计成复用 的可扩展模块。 0049 本发明采用路由计算和写缓存并行执行和交叉开关。
39、投机申请技术,即将现有技术 中的步骤2和步骤1并行执行,微片从虚通道缓存中读取后直接进入步骤3,步骤4以投机 的方式和步骤3并行执行,如果步骤4投机成功,微片同时获得下一跳路由器虚通道的使用 权和本级路由器交叉开关的使用权,在下一个时钟周期进入步骤5。采用上述技术后,在网 络零负载的条件下,一个微片通过路由器仅需要3个时钟周期。本发明的路由器可用于全 局异步局部同步的片上互连网络,虚通道缓存采用异步先入先出缓存,异步先入先出缓存 工作在两个时钟域,写端口时钟域和读端口时钟域,数据从写入异步先入先出缓存到可以 从读端口读出需要3个读时钟周期,本发明利用这段时间,在数据可以被读取前,完成对数 据包。
40、的路由计算。本发明同时采用投机交叉开关申请技术,已经获得下一跳路由器虚通道 使用权的数据包中的微片产生的交叉开关请求称为非投机交叉开关请求,尚未获得下一跳 路由器虚通道使用权的数据包中的微片产生的交叉开关请求称为投机交叉开关请求。本发 明将虚通道分配的结果做为投机交叉开关请求的仲裁结果,交叉开关分配器仅对非投机交 叉开关请求进行仲裁,如果存在非投机交叉开关请求,则将非投机交叉开关请求的仲裁结 果做为交叉开关的最终分配结果,如果不存在非投机的交叉开关请求,则将投机交叉开关 请求的仲裁结果做为交叉开关的最终分配结果。投机的交叉开关请求优先级低于非投机的 交叉开关请求,当采用投机交叉开关请求的仲裁结。
41、果做为交叉开关的最终分配结果时,称 为交叉开关投机申请成功,由于虚通道分配的结果与之相同,允许数据包的头微片在同一 个时钟内同时获得下一跳路由器中虚通道的使用权和本级路由器交叉开关的使用权。 0050 终上所述,本发明采用的路由计算和写缓存并行执行技术,利用异步先入先出缓 说 明 书CN 102629913 A 10 7/13页 11 存对微片进行时钟域转换的延迟,完成对数据包头微片的路由计算,实现当微片可以从先 入先出缓存中读取时,路由计算已经完成,可供使用。本发明采用的这项技术实现了与前瞻 路由相同的效果,但与前瞻路由相比具有明显的优点:1)路由计算在本级路由器完成,不 需要在路由器之间传。
42、输路由计算结果,从而不存在物理连线开销;2)采用独立于虚通道缓 存的寄存器记录路由计算结果,无需扩展虚通道缓存的位宽,节约了存储资源;3)路由计 算单元的位置从虚通道读端口之后调整到虚通道写端口之前,由于每个时钟周期路由器的 一个输入通道只能接收一个微片,同一输入通道中的各虚通道之间可以共享一个路由计算 单元而不会产生资源冲突和性能下降,从而减少路由计算单元的数量需求。 0051 本发明采用的交叉开关投机申请技术,关注虚通道请求的仲裁结果和投机交叉开 关请求的仲裁结果之间的相关性,投机成功是指微片同时获得虚通道使用权和交叉开关使 用权。在网络零负载的条件下,虚通道分配结果和交叉开关分配结果是一。
43、致的;当网络中出 现多个数据包在申请虚通道使用权的同时投机申请交叉开关的使用权时,可能会出现虚通 道分配结果和交叉开关分配结果不一致的情况,这会导致投机失败。本发明消除了多数据 包同时投机申请交叉开关使用权时可能出现的投机失败的情况。本发明的交叉开关分配器 只对非投机的交叉开关请求进行仲裁,而将同一个时钟周期的虚通道分配结果直接做为投 机的交叉开关仲裁结果,保证了当交叉开关分配器采用投机交叉开关仲裁结果做为最终交 叉开关分配的结果时,获得交叉开关使用权的微片和获得虚通道使用权的微片是同一个微 片,实现了100的投机成功率。在物理实现上,由于采用了将虚通道分配结果直接做为投 机交叉开关仲裁的结果。
44、,虚通道不需要产生投机的交叉开关请求信号,交叉开关分配器的 输入中不存在投机交叉开关请求信号,也就不需要使用仲裁器对其进行仲裁,因此本发明 的交叉开关分配器只需要一个仲裁器,与文献1的实现相比,电路成本更低,速度更快。 附图说明 0052 下面结合附图对本发明的具体实施方式作进一步详细说明。 0053 图1为现有的前瞻路由的电路结构示意图; 0054 图2为文献1的交叉开关分配器的示意图; 0055 图3为本发明的系统结构图; 0056 图4为本发明的路由计算单元电路图; 0057 图4中: 0058 a为路由计算单元的整体结构图, 0059 b为路由计算单元中路由计算模块的电路图, 0060。
45、 c为路由计算单元中微片类型判断模块的电路图; 0061 图5为输入信号分配器电路图; 0062 图5中: 0063 a为虚通道缓存的写使能信号分配的电路图, 0064 b为路由结果写使能信号分配的电路图; 0065 图6为虚通道和交叉开关请求信号产生电路图; 0066 图7为仲裁器的电路图; 0067 图7中: 说 明 书CN 102629913 A 11 8/13页 12 0068 a为仲裁器的整体电路结构图, 0069 b为仲裁器中的译码电路图, 0070 c为仲裁器中的编码电路图; 0071 图8为交叉开关分配器电路图; 0072 图9为交叉开关选择器电路图。 具体实施方式 0073 。
46、本发明的路由器在网络中的最小传输单位是微片,由微片头和载荷两部分组成。 微片头包含微片的类型、源地址和目的地址信息,载荷为微片传输的有效数据。路由器接收 到微片后只对微片头部分进行路由计算,微片头的长度为22位,其内容如表1所示。表1 中使用10位地址空间,支持1024个节点的片上互连网络,扩展地址空间的长度可以支持更 多节点的片上互连网络。表2列出了微片类型的编码。载荷长度可根据需要配置。 0074 表1 0075 22-20 19-10 9-0 微片类型 微片源地址 微片目的地址 0076 表2 0077 0078 本发明的路由器的框图如图3所示,路由器采用模块化设计。本发明的路由器包 括。
47、路由计算单元110、输入信号分配器120、虚通道缓存130、虚通道状态寄存器140、虚通道 分配器150、交叉开关分配器160、以及交叉开关选择器170。网络输入信号(111-114)来自 上一级路由器或网络接口。网络输入信号包括时钟信号111、微片写使能信号112、虚通道 编号信号113、微片数据信号114,它们同步于时钟信号111。当微片写使能信号112到达 时,输入信号分配器120根据虚通道编号113选通相应虚通道缓存的写使能信号115,微片 数据信号广播到各个虚通道缓存130的写端口。微片数据信号114的微片头部分送入路由 计算单元110进行路由计算,路由计算结果127通过输入信号分配。
48、器120广播到各个虚通 道寄存器140的输入端口。路由计算单元110同时对输入微片的类型进行判断,如果输入微 片为头微片,则将路由结果有效信号132置位。输入信号分配器120根据虚通道编号信号 说 明 书CN 102629913 A 12 9/13页 13 113置位相应虚通道状态寄存器140的路由结果写使能信号116,将路由计算的结果写入虚 通道状态寄存器140的路由结果位。微片写入到虚通道缓存130后,当虚通道缓存130中 的微片数据有效时,虚通道状态寄存器生成虚通道请求信号117至虚通道分配器150,虚通 道分配器150根据请求状况和当前的优先级设定给出仲裁结果,置位对应虚通道的仲裁结 。
49、果信号118,仲裁的结果同时返回到虚通道状态寄存器140和交叉开关分配器160。虚通道 分配器150根据下一跳路由器虚通道的占用状态信号119维护一个可分配虚通道的列表, 虚通道分配器150在置位虚通道的仲裁结果信号118的同时,将返回赢得仲裁的请求所获 得的虚通道分配结果信号121。虚通道状态寄存器140将虚通道分配器150返回的虚通道 申请结果写入虚通道有效位和虚通道编号位。虚通道中的数据包获得下一跳路由器中虚通 道使用权后,虚通道状态寄存器140通过相应电路生成非投机的交叉开关请求信号122,交 叉开关分配器160根据请求状态和下一跳路由器的满状态信号134做出仲裁,产生相应的 交叉开关分配的结果123。当存在非投机的交叉开关请求时,交叉开关分配器160仅在非投 机请求之间选择一个做为最终仲裁结果,当不存在非投机的交叉开关请求时,将虚通道的 仲裁结果信号118直接作为交叉开关分配的结果123。交叉开关分配的结果123返回到虚 通道缓存130的读端口和交叉开关。