一種基于FPGA的多時鐘片上網(wǎng)絡研究與設計
在FPGA 上設計一個高性能、靈活的、面積小的通信體系結構是一項巨大的挑戰(zhàn)。大多數(shù)基于FPGA 的片上網(wǎng)絡都是運行在一個單一時鐘下。隨著FPGA 技術的發(fā)展,Xilinx 公司推出了Virtex-4 平臺。該平臺支持同一時間內(nèi)32 個時鐘運行,也就是說每個片上網(wǎng)絡的內(nèi)核可以在一個獨立的時鐘下運行, 從而使每個路由器和IP 核都運行在最佳頻率上。因此適用于設計多時鐘片上網(wǎng)絡,實現(xiàn)高性能分組交換片上網(wǎng)絡。
1 多時鐘片上網(wǎng)絡架構的分析
片上網(wǎng)絡結構包含了拓撲結構、流量控制、路由、緩沖以及仲裁。選擇合適網(wǎng)絡架構方面的元素,將對片上網(wǎng)絡的性能產(chǎn)生重大影響。
?。?)網(wǎng)絡拓撲:在設計中,選擇Mesh 拓撲結構。Mesh結構擁有最小的面積開銷以及低功耗的特點。此外,Mesh 的線性區(qū)的節(jié)點數(shù)量規(guī)模大以及通道較寬。同時,Mesh 也能很好地映射到FPGA 下的底層路由結構,降低了FPGA 邏輯擁塞和路由器的功耗。
?。?)流控機制:虛擬直通和蟲洞技術(不像存儲轉發(fā))有數(shù)據(jù)包的延時與路徑長度成正比。然而,與復雜的蟲洞路由器相比, 虛擬直通的路由器更加適合于設計的實現(xiàn)。因此,選擇虛擬直通流量控制機制作為路由器的流量控制機制。相比較蟲洞機制,它能支持更高的吞吐量,在堵塞時能更有效地釋放緩存。此外,虛擬直通流量控制低延時的高信道利用率, 與此同時并不保留物理通道。
?。?)路由算法:選擇XY 算法作為設計所采用的路由算法。該算法中分組的路由只取決于源節(jié)點和目的節(jié)點的地址,而與網(wǎng)絡狀況無關。當使用算法時首先在X 維上進行路由,當?shù)竭_與目的節(jié)點同一列時,轉向在Y 維上的路由,最后到達目的節(jié)點。該算法對硬件要求簡單和實現(xiàn)容易, 在網(wǎng)絡流量不大時, 具有較小的時延,能夠有效避免死鎖和活鎖。
?。?)仲裁機制:輸入端口分配是基于簡單的Roundrobin[3]機制。上次接收或解決接收的端口會放在隊列的末端。切換時到下游的數(shù)據(jù)包。當交換數(shù)據(jù)包時,F(xiàn)IFO的虛擬通道也遵循這種機制。
2 路由器微節(jié)點結構的設計
多時鐘片上網(wǎng)絡的路由器由5 個輸入端口、交叉點矩陣和中央的仲裁器三部分組成。除了頭譯碼邏輯,5 個輸入端口都是相同的。由于設計中采取了虛擬通道流控機制(VCS),因此輸入端口就必須包含仲裁邏輯。與此同時, 輸入端口還應包含輸入緩沖區(qū)來存儲輸入的數(shù)據(jù)包。
2.1 數(shù)據(jù)包
利用Xilinx block RAM, 設置深度為16 的FIFO(先入先出隊列),數(shù)據(jù)包的大小能在24 位與128 位之間變化,每個數(shù)據(jù)包HEADER(包頭)占用一個flit(數(shù)據(jù)片)。flit 的大小固定在8 位。數(shù)據(jù)包頭包含路由目標地址、flit 的類型以及部分數(shù)據(jù)包。設計中采用的虛擬直通流量控制需要1 位去指定數(shù)據(jù)片的類型。路由器支持可變化大小的數(shù)據(jù)包, 通過編碼將數(shù)據(jù)包的大小編譯為字段,作為bRAM 所需要的部分,放在數(shù)據(jù)包頭部。每個IP 核的網(wǎng)絡接口(NI)起到存儲在數(shù)據(jù)包頭部的信息的作用。當需要更高粒度數(shù)據(jù)包時,部分數(shù)據(jù)包的位數(shù)以及寬度將會相應的增加。增加部分數(shù)據(jù)包的位數(shù)的同時也提高了緩存的利用率。數(shù)據(jù)包首部保留的位數(shù)將用于實現(xiàn)基于優(yōu)先級的流量控制。
評論