日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

三層交換機處理器收發(fā)包相關問題分析( 二 )


(2)釋放數(shù)據(jù)包時buffer首指針需要作歸一化處理(如圖2所示) 。
1.4中斷/輪詢
目前交換機涉及到的外部中斷主要由交換芯片產(chǎn)生,交換芯片主要的外部中斷包括DMA操作(如收到包、發(fā)包結(jié)束、新地址消息等等)和一些出錯消息 。假如中斷請求過于頻繁,中斷服務程序(ISR)和其他進程之間頻繁地上下文切換會消耗大量CPU時間 。假如有持續(xù)大量的中斷請求,CPU會始終處于繁忙狀態(tài),各種協(xié)議得不到足夠的調(diào)度時間,從而導致協(xié)議狀態(tài)機超時等嚴重故障 。
為了避免事件觸發(fā)頻率不可控的問題,可以使用輪詢機制,通常的做法是用CPU定時器觸發(fā)原先由外部中斷觸發(fā)的ISR,由于定時器觸發(fā)的間隔是固定的,所以ISR執(zhí)行的頻率得到了控制,避免了上述的問題 。

輪詢和外部中斷相比,只是節(jié)奏可控(外部中斷的節(jié)奏取決于外部事件發(fā)生的頻率,CPU不可控) 。但是,輪詢也有其不可避免的缺點——響應慢 。不能滿足某些實時性要求較高的功能 。另外,人們會發(fā)現(xiàn)用ping命令檢測交換機3層接口大包時,使用輪詢方式的交換機比使用中斷方式的交換機的時延明顯要大 。
假如能通過某種機制,避免持續(xù)、大量的中斷請求,則既可以保證CPU不會過于繁忙,又保留了中斷實時處理的優(yōu)點 。
典型的會產(chǎn)生大量中斷事件的行為是CPU接收數(shù)據(jù)包和MAC地址消息上報 。以收包為例,在前面“CPU負載與收包節(jié)奏控制”部分提到的Burst方式就是根據(jù)實時的流量,控制接收DMA的開關,這樣就達到了使中斷源受控的目的,這種類似負反饋的機制可以很好的避免持續(xù)的中斷事件上報CPU 。
總之,輪詢控制簡單,但實時性較差;中斷實時性好,但是使所有的中斷源受控有一定難度 。在系統(tǒng)初始設計階段,我們需要綜合考慮需求以及芯片對外部事件的處理方式,來決定采用中斷或者輪詢方式,或者兩者兼用 。
1.5多進程環(huán)境中外部事件的處理機制
常見的外部事件(中斷事件)包括收到包、包發(fā)送完(這里指的都是CPU收發(fā)包),包括收到MAC地址消息、MAC表操作完成等 。
假如把各類中斷事件的處理放在一個進程里,就人為地造成了各個事件耦合性增強,增加了各種事件相互制約的機會 。
在多任務操作系統(tǒng)中,為了能更靈活地處理各個事件,減少事件之間的子相互制約關系,各種事件應當盡可能地單獨起進程,或者根據(jù)處理方式的不同劃分為幾個進程,至少用單個進程來處理是不合適的 。
1.6協(xié)議包保護和CPU保護
對于基于ASIC的交換機,協(xié)議包保護是指利用ASIC芯片的某些機制,把特定的協(xié)議包指定到特定的端口隊列上去,保證其經(jīng)DMA隊列上送CPU的優(yōu)先級;CPU保護是指盡量減少不必要的數(shù)據(jù)包對CPU的沖擊 。
實現(xiàn)協(xié)議包保護的必要條件:
(1)CPU端口必需支持嚴格優(yōu)先級(SP)或者帶權(quán)重的羅賓環(huán)(WRR)的調(diào)度算法 。
(2)交換芯片必需具有較強的流分類能力,且可以給不同的流指定不同的端口隊列 。
在系統(tǒng)方案設計時我們需要兼顧對協(xié)議報文的保護和對CPU的保護,應該盡量做到:
(1)保證CPU收包通道和發(fā)包通道的暢通 。
(2)精確匹配,按需選取 。充分利用ASIC芯片的訪問控制列表(ACL)功能,盡量精確地匹配各類協(xié)議報文 。必要時需要匹配到4層字段[4] 。
實現(xiàn)以上幾點時,應兼顧其他功能及整機性能的限制 。
1.7效率降低的避免
在多任務操作系統(tǒng)中,各種事件需要用盡量短的時間片處理完成,以保證其他任務有足夠的機會得到調(diào)度 。所以我們在調(diào)用任何函數(shù)時都要考慮其執(zhí)行效率 。除了算法本身會影響執(zhí)行效率之外,頻繁地訪問某些硬件也相當耗時,而這一點往往輕易被忽略 。

推薦閱讀