《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > ATCA架構中多網口后板的高效設計
ATCA架構中多網口后板的高效設計
來源:電子技術應用2013年第1期
王 江
上海貝爾股份有限公司P&RD,上海200125
摘要: 介紹了多網口后板(RTM)的普通設計方案,提出了優化解決方案,并從軟、硬件方面進行了比較,并且描述了新方案在卸載CPU負荷、防止“中斷風暴”等方面的創新性設計。
中圖分類號: TP399
文獻標識碼: A
文章編號: 0258-7998(2013)01-0020-03
Efficient design of RTM with multiple ports based on ATCA
Wang Jiang
P&RD,Alcatel-Lucent Shanghai Bell Co.,Ltd.Shanghai 200125,China
Abstract: The paper first introduces normal design of RTM boards with multiple ports, and then the optimized new design is presented. Through comparing them on the aspects of software and hardware, it finally describes some innovatory ideas of the new design, including CPU offloading, "interrupt flooding" preventing and so on.
Key words : ATCA;SFP;interrupt;RTM

    先進的電信計算平臺ATCA(Advanced Telecom Computing Architecture)是國際工業計算機制造者聯合會PICMG(PCI Industrial Computer Manufacturer's Group)標準歷史上最重大的革新。它的設計初衷是針對電信運營級應用,為下一代通信及數據網絡應用提供一個高性價比、模塊化、兼容性強、擴展性好的硬件構架,為新一代電信運營設備提供一個“可靠、可用、適用”的解決方案。

    ATCA不僅能因其總線的開放性而降低電信設備總體部署成本,而且最大限度地提升了不同廠商產品之間的兼容性。ATCA設備在降低網絡建設和維護成本的同時,還可以通過更換板卡快速支持新應用和新業務,靈活性更強。由于這些優點,ATCA架構不僅在電信運營領域得到了廣泛應用,也逐漸在儀器儀表、軍事和航空航天等領域受到關注。
1 多網口后板的設計所面臨的問題
    符合ATCA標準的系統由一個或多個熱插拔線卡(即模塊)組成,這些線卡也稱為現場可替換單元FRU(Field Replacable Unit)。在基于ATCA的網絡設備中,為了提供數量多且性能高的網絡接口,往往在前板安裝先進的網絡處理器NPU(Network Process Unit)或CPU,而在同槽位的后板(RTM)上布置多個網絡接口連接器(如RJ45或者SFP插槽),用于連接外部網線或光纖。
    RJ45接口最高支持1 000 Mb/s的以太網速率,接口電纜是銅電纜,不適應電信設備“光進銅退”的發展趨勢。而SFP(Small Form-factor Pluggable transceiver)插槽由于既能容納RJ45接口的電模塊(Copper SFP),也能容納FiberJack接口的光模塊(Fiber SFP),靈活性好,速率可達10 Gb/s,因此越來越得到設計師的青睞。但是如何管理這些SFP模塊,對設計師而言,在硬件和軟件方面,面臨如下問題:
    (1)硬件方面:因為ATCA標準[1]規定,前板通往后板和背板的連接器分為3個區域:區域1、區域2和區域3。其中,區域1用于電源和管理信號,連接到背板;區域2負責前板之間的數據通路,也連接到后板;區域3用于前后板的連接,信號自定義,而前后板的連接無需經過背板,采用共面互連技術。區域3最多允許安放3個高速連接器,因為前后板之間的連接信號數量有限,所以在利用這些互聯信號時需要精打細算。互連信號越少,就越能節省昂貴的高速連接器,降低產品成本。按照SFP標準[2],每個SFP模塊都提供了一個符合I2C標準的管理接口,通過I2C接口,系統可以獲得模塊的型號、參數和工作狀態等信息。
    如果把每個模塊的I2C接口總線都連接到如圖1所示的前板,則會造成浪費。因為一個I2C接口需要占用2個互連引腳,I2C占用的互連引腳越多,留給其他模塊的互連引腳就越少,而實際上有相當多的互連引腳被用于傳輸以太網的收發信號,才能保證足夠的數據通路帶寬。
    另外,所有同類型SFP模塊的I2C接口的器件地址都是相同的,而I2C標準[3]規定每條I2C總線上不能存在兩個相同的器件地址,所以當它們與CPU相連時,必須經過I2C復用器(因為處理器通常沒有足夠的I2C總線接口)。I2C復用器可以采用專用的芯片實現(如PHILIPS公司的PCA9548A,支持將一個I2C接口擴展為8個I2C接口),也可以用CPLD或者FPGA實現。
    (2)軟件方面:I2C是一種低速串行總線,頻率一般為100 kHz或400 kHz。以100 kHz為例,如果不考慮器件的響應時間,讀取一個字節大約耗費40個I2C時鐘周期(約0.4 ms)。因為處理器和I2C復用器之間只有一個I2C接口相連,處理器不得不通過逐個輪詢的方式去查詢各個SFP模塊的狀態變化,占用了大量的CPU資源;如果用中斷方式,SFP模塊標準中又沒有定義模塊的中斷引腳,硬件架構上不提供支持。所以,如何有效管理各個SFP模塊而又盡可能低地耗費CPU指令是軟硬件設計面對的一大難題。對以上問題,本文提出下面的優化解決方案。
2 優化的解決方案
    為了解決硬件和軟件面臨的設計難題,本文從硬件架構入手,借助于CPLD或FPGA芯片,輔以高效的軟件設計,開發出了一套行之有效的解決方案。
2.1 硬件設計
    為了減少I2C接口所占用的前后板互連引腳數目,本文將執行I2C復用功能的芯片放到了后板上,這樣只有一條I2C總線通過互連區域3(即只占用2根互連引腳),極大地節省了互連引腳的數目。另一方面,I2C復用器不采用商業專用芯片,而是采用CPLD或者FPGA,可為軟件設計提供較佳的靈活性(如提供中斷機制)。在本設計中,采用了FPGA。
    假設后板上安放了8個SFP插槽,與優化前的設計相比,優化后的設計節省了14個互連引腳。為了進一步提升處理器訪問后板SFP模塊的速率,本文用PCIe總線取代I2C總線,如圖2所示。連接FPGA和處理器,PCIe總線占用4根互連引腳,雖然比I2C總線多占2個引腳,但是速率提升到了2.5 Gb/s,遠高于I2C的速率,使處理器和I2C復用器之間的速率瓶頸問題得以解決。選擇PCIe的另一個好處是:如果采用中斷方式,則PCIe不需要專用的中斷引腳,因為它是依賴帶內消息中斷的。此外,連接FPGA和8個SFP插槽的8組I2C總線互相獨立,所以FPGA可以并行地訪問8個SFP模塊,比串行訪問的效率提升了8倍。

2.2 軟件設計
    如何處理高速處理器與低速外圍總線之間的關系,是軟件設計的主要任務。處理器的速度一般在幾百到上千兆赫茲,而I2C總線的速度一般最高為400 kHz(普通的只有100 kHz),兩者完全不在一個數量級上。所以,FPGA不但要承擔擴展I2C總線的任務,而且要承擔管理低速總線設備的任務,使處理器有更多的時間處理計算量大、優先級高的任務。因此,軟件設計的主要工作在FPGA上。
    FPGA中集成了2個成熟的IP核:一個是PCIe內核,工作于從設備(End Point)模式,1路通道(x1 Lane);另一個是I2C內核,工作于主設備(Master)模式,各條總線互相獨立。FPGA軟件的設計需要考慮兩方面的因素:一是高效,盡可能降低CPU的負擔;二是支持熱插拔,因為SFP模塊隨時都可能被插入或拔出,導致I2C總線上正在運行的協議隨時會被中斷而產生異常。
    FPGA中的寄存器設計以及與SFP模塊之間的控制連線如圖3所示。根據SFP標準[2],每個模塊會引出一個存在(Prt)信號和一個使能(En)信號,FPGA中的使能(En)寄存器通過使能信號控制每個模塊是否工作。存在(Prt)寄存器通過讀取存在信號反映每個SFP插槽中是否插入了SFP模塊。重啟寄存器用于重啟各條I2C總線,特別是當I2C協議正在總線上運行時,模塊被突然拔出,I2C總線因為缺少客戶端的響應而產生異常,此時會在中斷狀態寄存器反映異常情況,并且自動重啟I2C總線,以便下次模塊插入時可以正常工作。CPU也可以主動設置指令寄存器來重啟某條I2C總線。

    地址寄存器和數據寄存器成對出現,每一對寄存器對應一條I2C總線。當處理器需要讀取SFP模塊內的一個寄存器時,可以將寄存器地址設置到地址寄存器,再設置指令寄存器為讀操作。如果操作正常,則操作完成后,FPGA會把讀取的數據存放在對應的數據寄存器中;如果操作出現異常,則FPGA會設置中斷狀態寄存器的相關比特位反映異常情況;當處理器需要寫SFP模塊內的一個寄存器時,先把待寫數據寫入數據寄存器,并將寄存器地址寫入地址寄存器,再設置指令寄存器為寫操作。如果寫操作異常,FPGA也會設置中斷狀態寄存器的相關比特位反映異常情況。
    中斷狀態寄存器反映了每條I2C總線的工作狀態以及模塊本身的狀態,例如:I2C總線工作是否正常、讀寫操作是否成功完成、模塊被拔出或者插入等。中斷屏蔽寄存器定義了各個狀態變化是否要觸發中斷上報機制。
    指令寄存器在不同比特位針對每條I2C總線設置了讀、寫、輪詢和重啟4種指令(讀寫和重啟指令在前文中已有描述)。輪詢指令是指:如果SFP模塊存在且使能,則FPGA會不停地讀取SFP模塊中的寄存器(寄存器地址由地址寄存器指定),并將讀回的數據存放在數據寄存器中,供處理器隨時調用;同時可以設置中斷,如果本次讀的數值不同于上次讀的數值,則產生中斷并通知處理器。輪詢功能為系統軟件監測后板對外的以太網接口的鏈路狀態提供了強大的支持。因為在系統運行過程中,以太網鏈路可能被斷開或連接,鏈接狀態隨時可能變化。例如,速率從百兆變為十兆,或從千兆變為百兆;模式從全雙工變為半雙工。
    許多SFP模塊的鏈路狀態可以從其中的一個物理層狀態寄存器獲得。假設處理器通過直接輪詢這個寄存器來獲得鏈路信息。如果I2C工作頻率為100 kHz,則讀取一個寄存器耗時約0.4 ms(8個SFP模塊共耗費約3.2 ms);在一個主頻為1 GHz的處理器中,輪詢一次占用的CPU資源高達3 200 000個CPU時鐘周期,處理器為了及時獲得模塊和鏈路狀態,不得不頻繁地(如每隔0.1 s)去輪詢一次,明顯降低了處理器的工作效率。然而,模塊和鏈路狀態不是一直在變化的,可能數小時或者幾周有一次變化,但是處理器如果不能及時捕獲這一次變化,就可能給系統運行造成致命的后果。例如鏈路斷開了沒有及時發現,仍然誤認為連接,將導致實際業務的中斷。而為了偶然出現的一次狀態變化,而頻繁地去輪詢查看低速設備的狀態,耗費大量的CPU資源是不值得的。
    因此,在新的軟件設計中,由FPGA接管處理器的輪詢任務,以中斷方式上報給處理器,使處理器只要在系統初始化時去獲得SFP模塊和鏈路狀態,運行過程中幾乎不需要在I2C總線上浪費任何CPU資源。
    另外,對某些中斷類型,例如模塊的插拔、鏈路狀態等,FPGA設計了防止“中斷風暴”的功能。“中斷風暴”是指短時間內有大量的中斷產生,直接影響處理器的效率甚至業務。例如有時SFP模塊或網線沒有插緊或者對端設備的網線虛插,可能引發狀態的頻率變化,觸發大量中斷產生。
    因為在系統軟件中,中斷的優先級大于任何線程或任務,當中斷過多時,處理器就忙于處理中斷而無暇顧及正常的數據處理和業務。而FPGA會根據“中斷風暴寄存器”規定的時間間隔,統計相同類型的中斷數量,上報第一個發生的中斷和最后一個發生的中斷,隱瞞中間過程產生的中斷,從而提高了處理器效率。時間間隔的設置需要根據應用仔細權衡,一般設置為50 ms左右。此外,運行在處理器上的軟件發現某類中斷頻繁上報時,還可以通過設置中斷屏蔽寄存器禁止這類中斷,并輸出消息提醒用戶。
    圖4是針對一個SFP模塊的FPGA的軟件流程。首先,FPGA讀入模塊的存在寄存器和使能寄存器,然后判斷模塊是否存在和使能,如果模塊不存在或者不使能則跳過;否則,根據指令寄存器中的指令進行相關操作。如果沒有設置指令,則跳過;如果是寫指令,則根據地址寄存器和數據寄存器的值進行寫操作;如果是讀指令,則根據地址寄存器中的數值進行讀操作,并將讀取的數值存放在數據寄存器中;如果設置了輪詢,則不斷地讀取設定的寄存器,更新數據寄存器中的數值。每種操作完成后都會調用中斷子程序,例如讀取存在寄存器后,FPGA會把當前數值和前一次的值進行比較,如果不同,則根據中斷屏蔽寄存器的設置觸發中斷;輪詢操作時數據寄存器的數值發生更新也可觸發中斷。

 

 

    本設計采用軟、硬件相結合(包括SFP模塊頻繁插拔、鏈路狀態頻繁變化等),經過長時間連續集成測試,同時觀察CPU的利用率,后板模塊管理任務所占的CPU利用率始終低于0.1%,而且處理器沒有漏過任何一次模塊和鏈路的狀態變化。測試證明,優化后的設計不但可以長時間可靠工作,而且大幅度降低了處理器在管理多網口后板上的指令開銷,提高了處理器的利用率。本文介紹的優化后的后板的軟、硬件設計架構不但適合于ATCA標準的后板,也可以應用到CompactPCI標準和其他自定義后板的設計中。

參考文獻
[1] PICMG.PICMG R3.0 advancedTCA base specification[Z]. 2008.
[2] SFF Committee.SFF-8472 specification for diagnostic monitoring interface for optical transceivers[EB/OL]Rev 11,2010.9,ftp://ftp.seagate.com/sff/SFF-8472.PDF.
[3] PHILIPS.The I2C-bus specification version 2.1[Z].2000.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产视频日韩 | 精品国产一区二区三区不卡 | 国产精品永久免费视频观看 | 国产高清视频在线免费观看 | 五月天激情视频在线观看 | 国产一区二区三区四卡 | 综合久久精品 | 五月综合在线 | 成年人国产网站 | 日本精品免费 | 日本不卡一二三区 | 天天色天天爽 | 久久99九九99九九精品 | 国产成人aa视频在线观看 | 51短视频版在线观看www免费 | 福利一区在线视频 | www.男人天堂 | 国产高清免费 | 国产精品123 | 九九这里只有精品 | 大片免免费观看视频播放网站 | 多人伦精品一区二区三区视频 | 看毛片软件 | 国产精品免费综合一区视频 | a级毛片在线免费 | 欧美在线视频一区二区 | 7799国产精品久久久久99 | 99在线观看精品免费99 | 国产精品免费久久 | 四虎影视8848a四虎在线播放 | 精品综合久久久久久97超人该 | 久久久久久久国产精品 | 美女色水一级 | 可以免费看毛片的网站 | 九九成人免费视频 | 国内精品久久影视 | 色啪网站 | 久99久热只有精品国产男同 | 91亚洲成人 | 开心丁香婷婷深爱五月 | 亚洲欧美成人综合久久久 |