虫孔Router
如图是5端口虫孔路由器的结构,由5个输入端口、路由计算单元、开关分配单元、交叉开关和5个输出端口构成,其中4个端口与东、南、西、北4个方向的相邻路由器相连,剩下的是本地端口和IP核相连。虫孔路由器采用的是虫孔交换机制,同时使用缓存队列放置在输入端口的交换结构,输入缓存采用FIFO结构,缓存深度D表示输入缓存能够容纳的微片数目。
工作过程
虫孔路由器的工作工程如下,当头微片(head filt)到达路由器时,头尾片首先会被存入输入端口的缓存队列中,同时路由计算单元
会提取头微片中的路由信息,包括源节点和目的节点地址、分组长度、时间戳等等。并根据当前路由器与目的路由器之间的相对位置,执行相应的路由算法为该头微片所在的分组
选择一个相应的输出端口。
路由计算单元
计算出分组在路由器中的输出端口
后,会向开关分配单元
发送输出端口请求
。开关分配单元根据流量控制机制传回的流量控制信息
,将该头微片的输出端口请求与其他和该头微片去往相同的输出端口的来自不同输入端口的请求
进行竞争仲裁。
开关分配单元完成开关分配后,会记录分配的结果,并根据该分配结果配置交叉开关,如果该头微片仲裁成功,那么交叉开关将链接该头微片所在的输入端口与它请求的输出端口,形成一个传输通道。同时开关分配单元会向该头微片所在的缓存发出读数据信号,接着该头微片从缓存中被独处,通过这条传输通道离开当前路由器。开关分配以分组为单位进行,当该头微片成功进行开关分配后,这个输出豆蔻被预约下来,后续的与它属于同一个分组的其他体微片和尾微片不再进行开关分配,直接进行开关传输,从头微片建立好的通道陆续从该输出端口离开当前路由器,当分组的尾微片经过交叉开关传输之后,分组对该输出端口的预约被释放,其他分组这是才能通过开关分配竞争这个输出端口。
- 路由计算单元
路由计算单元主要是提起头微片的路由信息,并根据当前路由器与目的路由器之间的相对位置,计算出分组的输出端口。
- 开关分配单元
开关分配单元根据流量控制机制传回的流控信息,将该头微片的输出端口请求与其他不同输入端口相同输出端口的微片通过仲裁机制进行竞争仲裁。并记录分配结果。并完成开关分配
- 交叉开关
交叉开关将开关分配单元行程的分配结果链接,也就是将输入端口(FIFO)与它请求的输出端口行程传输通道。同时开关分配单元会向头微片所在的缓存发出读数据信号,头微片沿传输通道传输。
工作流程
从上面的描述中可以看出,虫孔路由器其实可以分为一条控制路径和一条数据路径。控制路径路由计算单元
和开关分配单元
组成,通过控制路径为该头微片所在的分组的其他微片预约一个输出端口,其他分组微片不能使用,直到该头微片的整个分组传输完后才能使用。数据路径由输入缓存和交叉开关构成,分组微片到来后由输入缓存存储,经过控制路径分配到输出端口,经过交叉开关转发到目的节点。很明显,虫孔路由器的工作是按照3级流水方式工作。
分别由路由计算(RC)、开关分配(SA)以及开关传输(ST)。头微片SA成功后,体微片和尾微片可以直接使用SA的结果,跳过路由计算和开关分配阶段,直接进入开关传输阶段。