新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于FPGA 的多时钟片上网络设计

基于FPGA 的多时钟片上网络设计

作者:时间:2012-08-24来源:网络收藏

上设计一个高性能、灵活的、面积小的通信体系结构是一项巨大的挑战。大多数基于都是运行在一个单一时钟下。随着 技术的发展,Xilinx 公司推出了Virtex-4 平台。该平台支持同一时间内32 个时钟运行,也就是说每个的内核可以在一个独立的时钟下运行, 从而使每个路由器和IP 核都运行在最佳频率上。因此适用于设计,实现高性能分组交换片上网络。

本文引用地址:http://www.eepw.com.cn/article/190005.htm

1 片上网络架构的分析

片上网络结构包含了拓扑结构、流量控制、路由、缓冲以及仲裁。选择合适网络架构方面的元素,将对片上网络的性能产生重大影响。

(1)网络拓扑:在设计中,选择Mesh 拓扑结构。Mesh结构拥有最小的面积开销以及低功耗的特点。此外,Mesh 的线性区的节点数量规模大以及通道较宽。同时,Mesh 也能很好地映射到FPGA 下的底层路由结构,降低了FPGA 逻辑拥塞和路由器的功耗。

(2)流控机制:虚拟直通和虫洞技术(不像存储转发)有数据包的延时与路径长度成正比。然而,与复杂的虫洞路由器相比, 虚拟直通的路由器更加适合于设计的实现。因此,选择虚拟直通流量控制机制作为路由器的流量控制机制。相比较虫洞机制,它能支持更高的吞吐量,在堵塞时能更有效地释放缓存。此外,虚拟直通流量控制低延时的高信道利用率, 与此同时并不保留物理通道。

(3)路由算法:选择XY 算法作为设计所采用的路由算法。该算法中分组的路由只取决于源节点和目的节点的地址,而与网络状况无关。当使用算法时首先在X 维上进行路由,当到达与目的节点同一列时,转向在Y 维上的路由,最后到达目的节点。该算法对硬件要求简单和实现容易, 在网络流量不大时, 具有较小的时延,能够有效避免死锁和活锁。

(4)仲裁机制:输入端口分配是基于简单的Roundrobin[3]机制。上次接收或解决接收的端口会放在队列的末端。切换时到下游的数据包。当交换数据包时,FIFO的虚拟通道也遵循这种机制。

2 路由器微节点结构的设计

片上网络的路由器由5 个输入端口、交叉点矩阵和中央的仲裁器三部分组成。除了头译码逻辑,5 个输入端口都是相同的。由于设计中采取了虚拟通道流控机制(VCS),因此输入端口就必须包含仲裁逻辑。与此同时, 输入端口还应包含输入缓冲区来存储输入的数据包。

2.1 数据包

利用Xilinx block RAM, 设置深度为16 的FIFO(先入先出队列),数据包的大小能在24 位与128 位之间变化,每个数据包header(包头)占用一个flit(数据片)。flit 的大小固定在8 位。数据包头包含路由目标地址、flit 的类型以及部分数据包。设计中采用的虚拟直通流量控制需要1 位去指定数据片的类型。路由器支持可变化大小的数据包, 通过编码将数据包的大小编译为字段,作为bRAM 所需要的部分,放在数据包头部。每个IP 核的网络接口(NI)起到存储在数据包头部的信息的作用。当需要更高粒度数据包时,部分数据包的位数以及宽度将会相应的增加。增加部分数据包的位数的同时也提高了缓存的利用率。数据包首部保留的位数将用于实现基于优先级的流量控制。

2.2 输入端口

路由器有5 个输入端口, 通过端口分别与内核及邻近的路由器通信, 这5 个端口按在方位可分为本地(L),北(N),东(E),南(S),西(W)。每个输入端口可以支持虚拟通道多路复用,相关联的仲裁器,以及头译码逻辑,从而作出路由决定。如图1,输入端口的3 个主要组成部分分别是虚拟通道选择器、FIFO bRAMs 以及bRAM 仲裁器。虚拟通道选择器:决定输入端缓存的使用空间的决定权在虚拟通道选择器。当数据包大小以编码形式传播时,虚拟通道选择器接收数据包的首部。当虚拟通道选择器收到来自上游路由器或者来自自身核心的数据时, 虚拟通道选择器就会拿数据包的大小跟虚拟通道目前可以容纳数据包的大小进行比较。这么做的目的是为了能够使输入的数据能够符合FIFO 中write_count 的大小。如果有足够的空间存在,则虚拟通道选择器将同意输入请求, 同时反馈信息。在此过程中,虚拟通道选择器还设置了输入端解复用器。解复用器的作用是使数据包从输入通道传输到正确的复用器的输入缓存中。FIFO bRAMs:在所设计的路由器中,缓冲区的深度将参数化,在试验时同时将其深度设置为16 。这些缓存区将被作为bRAM FIFO 的存储器,同时起到以下作用:


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭