Global Sources
電子工程專輯
 
電子工程專輯 > 控制技術/MCU
 
 
控制技術/MCU  

最佳化乙太網路控制器滿足嵌入式連網需求

上網時間: 2006年07月20日     打印版  Bookmark and Share  字型大小:  

關鍵字:非PCI  乙太網路控制器  嵌入式  連網 

非PCI介面的乙太網路控制器已成為嵌入式設計中週邊設備連網的標準解決方案。然而,在嵌入式系統中採用傳統非PCI介面乙太網路控制器實現高性能連網功能仍存在諸多挑戰。本文描述了這些設計挑戰,包括緩衝區排列、匯流排架構、串流控制,並探討了如何最佳化現有的非PCI介面乙太網路控制器架構,以滿足苛刻應用的整體性能要求。

目前支援消費電子和其它市場的嵌入式系統需要更高階連網能力。非PCI介面的乙太網路控制器為系統設計師的嵌入式連接方案提供了性能和架構選擇的最佳結合。因此,非PCI介面的乙太網路控制器成為這些嵌入式設計中週邊設備連網的標準解決方案。

一直以來,設計師在對非PCI匯流排的嵌入式系統增加乙太網路連接功能時,一直面臨多種挑戰。這些常見的挑戰包括:為現有的乙太網路控制器調整非標準的匯流排介面,滿足TCP/IP數據封包處理所要求的CPU頻寬,這些要求使週邊設備和記憶體介面結合所帶來的固有系統性能大幅下降。

為了更好地克服這些挑戰,設計師必須對傳統乙太網路控制器做出一些改變。其目的是在使用現有嵌入式CPU情況下得到一種能提高性能的嵌入式系統解決方案。以下將探討如何實現這個目標。

控制器設計基礎

圖1為標準的嵌入式系統,其中採用了無PCI介面的嵌入式CPU和相關記憶體(SRAM、SDRAM和快閃記憶體),並透過本地匯流排連接週邊設備,如視訊、USB和IDE控制器。嵌入式CPU和作業系統的範例包括英特爾XScale、瑞薩SHx、松下以及意法半導體的晶片,這些晶片可執行Linux、Windows CE、VxWorks和其它即時作業系統(RTOS)。



圖1:支援非PCI乙太網路連接的標準嵌入式系統。

從作業系統或軟體的角度來瞭解數據如何從嵌入式系統應用程式到乙太網路的傳輸過程非常重要。圖2顯示了一種嵌入式系統軟體結構。



圖2:透過乙太網路發送應用數據

該結構分成應用程式、包含TCP/IP協議堆疊的作業系統和乙太網路控制器驅動程式。非PCI介面的乙太網路控制器將透過本地匯流排與其軟體驅動程式連接。

當應用程式透過網路發送數據或控制資訊時,會與作業系統共同產生一個指向不同緩衝區的軟體數據結構鏈表,以避免數據複製。此外,緩衝區還保存要放入乙太網路數據封包的數據。每塊緩衝區代表一個乙太網路數據封包的一個不同部份,而後由乙太網路控制器驅動程式將這些不同部份組合起來進行傳輸。數據緩衝區不是相互鄰近的,這意味著每塊緩衝區的頭端和尾端不在相同的線性地址空間內。

如同圖2所顯示,作業系統將‘Tx Data Ptr’變量或軟體指針傳遞到乙太網路控制器軟體驅動程式。‘Tx Data Ptr’具有描述字符1的地址,描述字符1指向描述字符2,以此類推。這些描述字符都指向數據緩衝區。然後,乙太網路控制器驅動程式透過本地匯流排將每一塊數據緩衝區轉移到乙太網路控制器。

接收作業則依相反順序執行。這個過程需要大量軟體參與,如果處理不當可能降低性能。同樣重要的是,不同的數據緩衝區可能沒有在記憶體中自然排列,這對整體網路系統性能至關重要。

有限的選擇

目前,採用乙太網路連接的消費電子設備只限於三種選擇:

1. 外部PCI乙太網路控制器:多數嵌入式處理器不支援PCI匯流排,因此選擇一個PCI乙太網路控制器通常不可行。表1顯示,根據市場研究,市場上8位元或16位元CPU都不支援PCI,且只有16%的32位元CPU支援PCI,而大多數嵌入式處理器支援一種本地/記憶體匯流排。



表1:匯流排類型和對整合乙太網路控制器的支援

嵌入式CPU製造商沒有‘擁抱’PCI是的要原因是成本,因為用來實現PCI的額外I/O接腳和電路會增加嵌入式處理器成本。另外,嵌入式CPU需要一種記憶體匯流排,而在很多情況下,這個匯流排是與其他週邊設備共享的。因此,增加另外一種寬的平行匯流排以支援PCI週邊設備並不切實際。同時,這些嵌入式系統通常不需要即插即用這種先進PCI功能。

2. 整合乙太網路:表1顯示了內部整合了乙太網路控制器的嵌入式CPU所佔百分比。很明顯,大多數嵌入式處理器並不支援整合的乙太網路控制器。

3. 外部的非PCI介面乙太網路控制器如圖1所示,大多數嵌入式處理器支援一種非PCI的本地匯流排,且不包含對內部乙太網路控制器的支援。

主要設計挑戰

在為非PCI嵌入式CPU增加高性能乙太網路連接功能時,主要挑戰通常為那些傳統上非PCI介面的乙太網路控制器所忽略。然而,透過考慮一定的架構改進,非PCI乙太網路控制器可提供更高性能,同時還解決成本和可靠性問題。三個主要挑戰分別是緩衝記憶體排列、匯流排架構以及串流控制。以下將探討這些問題。

1. 緩衝區排列

當乙太網路的訊框數據存在於嵌入式CPU的系統記憶體中之際,就會產生乙太網路訊框數據緩衝區的排列問題。乙太網路訊框數據會被分割並分散到記憶體的多個緩衝區中。每個緩衝區片段可在訊框上的任一位元組排列上開始和結束,且可能是任意長度。

未排列的數據對傳統乙太網路控制器來說並不理想,因為傳統乙太網路控制器需要將發送數據以32位元排列的形式提交給控制器。由於數據可能以未排列整齊的片斷形式到達驅動程式,驅動程式必須用CPU來收集分散的片斷,並在寫入乙太網路控制器之前對數據進行重新排列。這個過程的效率很低,因為必須從系統的記憶體中讀取數據、重新排列並寫入到乙太網路控制器。相較從系統記憶體中讀取數據並直接寫入到乙太網路控制器,這個過程至少要三個步驟。

最糟糕的負面影響是與直接記憶體存取(DMA)控制器不相容。傳統上,在嵌入式CPU中的DMA控制器不能執行數據的重新排列,這使其無法在系統中移動乙太網路數據。於是數據移動和重新排列的任務就落到了嵌入式CPU上,其所佔用的MIPS本來可在應用中的其他地方得到更好的利用。

理想的乙太網路控制器會自動處理數據的重新排列。數據會以自然排列的形式傳遞,乙太網路控制器將瞭解封包的數據邊界,然後乙太網路控制器在數據發送前,會在內部透明地對數據進行重新排列。這種透明的重新排列透過緩衝區複製,使嵌入式CPU從重新排列數據的任務中釋放出來。如此系統將能選擇使用簡單的DMA控制器來移動數據。

2. 匯流排架構

嵌入式CPU為了發送乙太網路數據封包,必須將數據寫入乙太網路控制器中的緩衝記憶體。反之,對於接收乙太網路數據封包,嵌入式CPU必須從乙太網路控制器的內部緩衝記憶體中讀出接收的數據。嵌入式CPU利用編程I/O(PIO)週期或DMA週期移動數據。

不管是使用PIO或DMA進行發送或接收作業,數據都是透過嵌入式CPU的外部本地匯流排傳送。每次作業都需要花費時間,且花的時間越多,作業對系統整體性能影響就越大。關鍵問題是要使存取乙太網路控制器時間很短,以提高整體系統速度。傳統上,低性能的乙太網路控制器在讀取和寫入的存取期間會迫使CPU處於等待狀態,這等於更長的讀取和寫入週期。在本地匯流排上增加更多的等待狀態意味著CPU執行其它任務的時間更少,以及用於內部和外部設備的頻寬更少。

其他一些不太明顯的機制會導致額外的等待狀態。例如,很多傳統乙太網路控制器需要很長的數據和地址設立時間。這可能需要額外的連接邏輯以及鎖存器。在這種系統中,可能要減少系統中每個元件的匯流排週期時間,包括記憶體。

某些嵌入式CPU採用其他機制來減少外部本地匯流排上的處理時間。這種機制的一個例子是突發模式讀取處理。這種作業模式通常與DMA控制器有關,可降低匯流排週期佔用。在突發處理期間,控制訊號被維持,在每次讀取作業時地址都會改變。通常與PIO讀取相關之讀取週期間的解除維持時間會被消除。傳統的乙太網路控制器不支援突發模式讀取。多數嵌入式處理器本身支援SRAM類型的本地匯流排介面。因此,最佳化乙太網路控制器以模擬SRAM記憶體介面很有意義。這種做法優勢很明顯。這種乙太網路控制器不僅為多數嵌入式處理器提供一種無縫的介面,且所有特性都可以使用,如快速整體匯流排週期時間、最小地址和數據設立時間,以及支援突發模式讀取等。

3. 串流控制

另外一種增加非PCI介面乙太網路控制器性能的方式是最佳化乙太網路流量情況。這可透過支援乙太網路串流控制實現。

乙太網路串流控制容許乙太網路接收器減緩其對應的發送器速度,這能夠防止接收器緩衝記憶體溢出。中斷延遲或其它原因會導致嵌入式CPU無法跟上乙太網路數據接收的速度,這會導致接收緩衝記憶體溢出。一旦出現溢出,接收到的數據便會丟失,因而導致嚴重的系統性能下降。

很多乙太網路設備使用一種‘暫停控制’訊框支援全雙工串流控制。暫停作業在規定的時間內禁止發送數據訊框。暫停作業由一個暫停控制訊框組成,這個訊框包含全局分配的群播地址、暫停作業碼以及指出數據禁止傳輸之持續時間的參數組成。當接收到包含預留的群播地址和暫停作業碼訊框時,乙太網路設備就禁止在指定的時間段內傳輸數據。在半雙工模式,反壓(backpressure)用於串流控制。乙太網路控制器透過‘堵塞’接收數據和故意產生衝突來調節數據接收。在檢測到衝突後,遠端站點將停止發送數據。

理想的乙太網路控制器必須能檢測其內部緩衝記憶體空間,然後在沒有處理器的干預下自動發送一個暫停訊框,或發生堵塞。且設備應該能發送一個‘零時間’的暫停訊框,以在內部緩衝記憶體有可用空間時重新發送數據。自動串流控制透過減少處理器中斷次數和開銷提高了系統的整體性能。恰當地實現串流控制還能避免網路兩端的接收緩衝記憶體溢出。

本文小結

消費電子設備、娛樂音視訊設備以及傳統的家庭網路設備(如PC和印表機)正朝網路融合方向發展,明顯地,乙太網路已成為家庭中實現連接的網路選擇。在很多情況下,關於可選擇哪種嵌入式CPU用於消費電子或音視訊設計,系統設計者的選擇有限。因此,在不更換高成本CPU方案的條件下,實現期待性能水準的唯一辦法是最佳化現有的非PCI介面乙太網路控制器。透過最佳化非PCI介面乙太網路控制器的架構,可提高整體系統性能。

作者:Charlie Forni

工程總監

Paul Brant

首席系統架構師

SMSC公司




投票數:   加入我的最愛
我來評論 - 最佳化乙太網路控制器滿足嵌入式連網需...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首