Skip to content
Felven edited this page Dec 31, 2017 · 1 revision

Welcome to the nriet-rapidio-switch-lib wiki!

整个交换板是由3块1848互联组成,每2块1848之间由3路X4的端口互联,其中第1块1848上连接着Zynq的一路X1的Endpoint,它作为整个RapidIO网络的Host,完成对RapidIO网络的枚举和路由配置。整个交换板对外提供17路X4的接口,拓扑图见上图所示。 Host的枚举过程是根据实际的物理拓扑结构进行扫描,从Host出发找到所有的通路并记录下来。枚举完成后就是路由配置,需要将枚举到的所有交换芯片都进行路由配置。这里需要计算每个交换芯片和其它所有交换芯片的路径,二代交换中采用的是佛洛依德算法-最短路径算法中的一种。由于每个交换芯片上可能有多个端点(endpoint),这时为了充分发挥链路的带宽,避免数据堵塞,首先会在交换芯片的端口上做负载均衡。端口负载均衡的原理:当两个交换芯片通过多个端口互联时,就可以做端口的负载均衡。如下图的578-2和1848-2,这两个交换芯片分别通过578的端口4、10连接到1848的端口2、4上。如果578-2上有4个端点(endpoint),假设id分别是5、6、7、8;就可以让5、6的数据从1848-2端口2出去,让7、8的数据从1848-2端口4出去。而不会让5、6、7、8都从一个端口出去。 其次会在两个交换芯片的最短路径上再做一次负载均衡。当发现两个交换芯片存在多条相同的最短路径时,软件会记录下来。如下图的1848-1和578-4,这两个交换芯片存在两条相同的最短路径,分别是路径1)1848-1到1848-2到578-4;路径2)1848-1到1848-3到578-4。这时如果578-4上有4个端点(endpoint),假设id分别是5、6、7、8;就可以首先做一个端口均衡,5从1848-1的端口0出去,6从1848-1的端口7出去,7从1848-1的端口11出去;8会选择另外的一条最短路径从而选择从1848-1的端口3出去。

Clone this wiki locally