當前位置:編程學習大全網 - 編程語言 - 高端路由器設計需要考慮哪些數據緩沖器問題

高端路由器設計需要考慮哪些數據緩沖器問題

可參看:/cdbbs/2007-8/29/078290342C24C06.html 迅速增加的數據、語音和視頻流量進入城域網(MAN)後,服務於這些應用的路由器必須能將多路的1 Gbps數據流匯聚成高達40 Gbps帶寬的數據流.為了保持線速性能,系統必須在出口端提供等於或高於進入傳輸速率的信息包處理能力,或者對信息包進行備份,這時緩沖就變得至關重要。 這些數據緩存的性能和效率對路由器和網絡的性能至關重要。網絡性能的主要威脅來自數據的重發。因此,城域邊緣的路由器必須能夠匯聚多個較低速率的接入線路,並將其轉發至高速核心連接而不致欠載。路由器也必須保證從更高速的核心網到邊緣網的數據分發操作不會超時。在任何情況下超過了數據緩存的最大能力,發送到 MAN 的任何額外數據都必須重傳。 因此,最大限度地降低系統延遲和確保系統最大吞吐量的關鍵是為具體應用選擇合適的數據緩存。如果緩存過大,就會大幅度增加系統成本。如果過小,網絡就會溢出緩存並重發數據,導致性能下降。 這種考慮涉及三個主要因素:輸入數據的速率(入口線路)、輸出數據的速率(出口線路)及內部處理時間需求。只要來自網絡的入口數據速率與回到網絡的出口數據速率相等,而且具有最小的處理需求,數據緩存即可保持相 對較小。因為內部處理只增加很小的延遲,流量也比較穩定,所以幾乎不需要存儲數據。不過,隨著系統執行更高級別的處理,就必須增大緩存來消除處理功能帶來的延遲。突發流量對數據緩存的設計也有顯著的影響。如果入口數據速率隨著時間顯著變化並偶爾超過信息包處理器的能力,就必須適當地改變入口緩沖器的尺寸,以解決與這些處理功能相關的延遲問題。 可編程邏輯器件的優勢 在為這些應用構建緩沖子系統時,工程師傾向於首先考慮采用FPGA,而不是現成的分立存儲器件。由於工程教育機構日益依賴於 FPGA 來教授電路設計的基礎知識。因此,大部分工程師都熟悉這種技術。FPGA 有助於設計師隨時對他們的設計進行重新配置,提供高度靈活性,並在短期內完成硬件的測試。此外,由於這些工具常常是人們熟悉的,可以迅速轉變成最終解決方案。 現在,FPGA 可提供數百萬的邏輯門和兆比特級的片上存儲器,設計師可將多個 FIFO集成到壹個芯片上(見圖 1)。然而,在數據緩存需求比較高的城域邊緣網領域,設計師必須仔細評估他們所有的設計選擇。在某些情況下,設計師會發現可編程邏輯器件在給定性能或成本方面存在固有的局限性,而分立器件可提供更具吸引力的解決方案。 圖1 可集成多個FIFO的FPGA 例如,許多工程師沒有意識到,基於 FPGA 的解決方案的性能會隨著滿足應用需求的數據緩存大小的改變而變化。雖然現在的FPGA 可以更高的時鐘速率運行,當設計師把越來越多的 FIFO 映射到 FPGA 時,他們面臨重大的性能局限性。設計師會使用來自 FPGA 供應商的工具,自動地將多個 FIFO 映射到單個物理存儲器塊中,並創建在不同的FIFO之間時域復用所需的邏輯。然而,采用這種復用方法,會使每個FIFO端口的工作頻率與映射到設計中的 FIFO 數量成反比。這是因為當每個 FIFO 獨立運行時,整個存儲帶寬是***享的。當 FIFO 器件的讀寫操作開始時,時序電路會在快速的 TDM 時鐘域中訪問物理存儲器。為了完成每次存儲器的存取,時序器必須將信息傳回到FIFO端口的時鐘域。隨著 FPGA 中FIFO 數量的增加,時序電路的速度和時鐘域傳輸的數量將會嚴重限制 FIFO 的性能。因此,壹些FPGA供應商建議設計師把器件采用的 FIFO 的數量控制在10個之內。 高性能城域邊緣網路由器設計的存儲器密度也會影響 FPGA 的性能。為了充分發揮性能,設計師很自然地優先選擇內嵌的數據緩沖器。所以,許多設計師選擇采用更高密度的 FPGA 來滿足大型數據緩沖器的存儲需求。 然而,采用這種策略也會產生壹些問題。當設計師在 FPGA 中使用大量存儲器時,壹些存儲器將會進壹步遠離I/O和邏輯門。這種存儲資源在芯片內的分散將導致內部寫脈沖隨線長而變化,並延長建立時間。在壹些應用中,FPGA 中大型存儲陣列的使用可降低高達40%的芯片內部速度。 解決該問題的壹種方法是選擇更小和成本更低的 FPGA實現控制邏輯,並采用外部分立存儲器來支持。設計師會采用外部SRAM來增強 FPGA 的存儲能力。FPGA供應商可提供預定義模塊,設計師可將其集成到 FPGA 中,用以進行外部存儲器管理。這種方法有助於設計師使用更小和更便宜的 FPGA。 但是,由於FPGA架構固有的 I/O 局限性,這種方法為設計帶來了延時。在采用 FPGA 和外部存儲器的設計中,數據通過 FPGA 中比較慢的可編程門進入緩沖器,然後子系統必須為控制器分配壹個地址,並將數據轉移到外部存儲器。接下來,系統必須分配壹個地址並把數據拖到外部存儲器中。這兩個操作必須通過 FPGA 中比較慢的可編程 I/O門進行。最後,數據必須從 FPGA 發送到系統中,並再次經過 FPGA 可編程門。假設在 FPGA 和外部存儲器中進行大量的存取,該子系統需要 8 個時鐘周期來處理每個數據字節。

  • 上一篇:數字如何生成二維碼?
  • 下一篇:網絡營銷方向和美工技術方向哪壹個有更好的發展前景
  • copyright 2024編程學習大全網