新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA 的多時鐘片上網絡設計

        基于FPGA 的多時鐘片上網絡設計

        作者: 時間:2012-08-24 來源:網絡 收藏

        上設計一個高性能、靈活的、面積小的通信體系結構是一項巨大的挑戰。大多數基于都是運行在一個單一時鐘下。隨著 技術的發展,Xilinx 公司推出了Virtex-4 平臺。該平臺支持同一時間內32 個時鐘運行,也就是說每個的內核可以在一個獨立的時鐘下運行, 從而使每個路由器和IP 核都運行在最佳頻率上。因此適用于設計,實現高性能分組交換片上網絡。

        本文引用地址:http://www.104case.com/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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 亳州市| 新泰市| 聂荣县| 呼和浩特市| 新和县| 攀枝花市| 宣化县| 新干县| 双峰县| 马鞍山市| 马山县| 邹平县| 遵义市| 清苑县| 任丘市| 社会| 银川市| 隆德县| 大渡口区| 中山市| 姜堰市| 清水县| 新津县| 富锦市| 白朗县| 庆安县| 林芝县| 东乌珠穆沁旗| 上饶县| 个旧市| 广德县| 阳江市| 闻喜县| 菏泽市| 鹤庆县| 巍山| 如东县| 新巴尔虎右旗| 若羌县| 融水| 女性|