專利名稱:在無線mac處理器中提供通過網絡連接的數據流傳輸的方法和裝置的制作方法
技術領域:
本發明涉及無線網絡,更具體地說,涉及用于MAC處理的MAC控制器和方法,所述MAC處理獲得數據以從存儲器直接發送過分組網絡鏈路。
背景技術:
圖1示出了例如用于遵從IEEE 802.11標準之一的無線局域網(WLAN)的傳統現有技術的無線網絡連接100。無線電部分101包括耦合到無線電收發器105的一個或多個天線103,無線電收發器105包括模擬RF部分和數字調制解調器。無線電部分101的數字調制解調器耦合到實現MAC協議的MAC處理器107。MAC處理器107通過一條或多條總線(象征性地示為單個總線子系統111)連接到主機處理器。主機處理器包括存儲器(例如,連接到主機總線的RAM),該存儲器在這里示為總線子系統111的一部分。
在實現MAC協議(例如,IEEE 802.11 MAC協議)時,MAC處理器107決定在何時發送哪些MAC分組。典型的現有技術MAC處理器107包括快速但是相對較小的本地存儲器(在圖1中示為MAC存儲器109),該本地存儲器確保MAC處理器可以快速訪問其需要發送的分組。主機處理器決定MAC處理器可能需要哪些分組,并發送這些被包括在本地MAC存儲器109中的分組。當有一個或多個分組要發送時,MAC處理器隨后從其MAC存儲器109中取得這些分組。
在本地MAC儲存器不包含MAC處理器107需要發送的分組時會發生一個問題。在MAC處理器經由總線系統111從主機存儲器115獲得所要求的分組,然后將分組載入到本地MAC存儲器109時,發送會慢下來。
所以,希望減小由于這種失誤所產生的問題,甚至消除對用來保存要發送的分組的本地MAC存儲器的需求,以使這種失誤幾乎不可能。
近來,越來越多的MAC處理功能被移到主機處理器上。例如,主機可以實現WLAN接入點。通過將越來越多的功能移到主機上的軟件中,實現了更大的靈活性。這樣的布置也可以幫助消除上述所要求的分組不在處理器的本地MAC存儲器109中時MAC處理的失誤。
在一個這樣的安排中,MAC處理功能被劃分為“低層MAC”和“高層MAC”,“低層MAC”在硬件中實現這樣的方面,如接口到物理無線電部分(PHY)101、加密和實際的收發MAC分組。低層MAC可以利用處理器實現,并且包括本地存儲器。“高層MAC”功能(即,剩余的MAC功能)實現在運行在主機處理器上的軟件中。低層MAC經由總線子系統耦合到主機處理器。
當要發送的分組準備好時,主機將關于這些分組的信息傳遞到低層MAC。例如,信息可以包括關于MAC分組的有效載荷駐留在主機存儲器中的何處的信息。該信息被本地地存儲在低層MAC上。當低層MAC被建立來發送要發送的MAC分組時,低層MAC建立所需數據的DMA傳送。然后,數據經由DMA被從主機傳遞到低層MAC處理器。
這避免了現有技術方法的失誤情形,該方法包括主機預測并以要發送的分組預先加載本地MAC存儲器。
近年來,人們希望將用作接入點的臺站的更多智能移到交換機上。例如,可能使某些MAC功能在連接到接入點的交換機中執行。
從而,在技術中需要這樣一種機制,其使更多的MAC功能駐留在遠離無線臺站自身的設備中。
發明內容
這里公開了一種無線發送或接收信息分組的方法,和無線發送或接收信息分組的裝置。在發送情形中,該方法包括在發送期間經由網絡鏈路流傳輸包括分組的至少某些內容的數據元素。在接收情形中,該方法包括在接收期間經由網絡鏈路流傳輸包括接收分組的至少某些內容的數據元素。發送或接收是由無線網絡的臺站進行的,并且流傳輸是從通過網絡鏈路耦合到臺站的網絡設備去往臺站的,或者從臺站去往該網絡設備的。
一個實施例是在無線網絡的臺站中實現的方法,在一個實施例中,無線網絡是IEEE 802.11無線網絡。臺站通過網絡鏈路耦合到網絡設備(在一個實施例中是交換機),在一個實施例中,網絡鏈路是G比特以太網或者至少與G比特以太網一樣快的任何以太網。網絡設備包括存儲器。該方法是在臺站處的無線發送或無線接收期間經由網絡鏈路實現去往或來自網絡設備存儲器的數據的流傳輸。
該方法包括接受信息,該信息描述了在發送情形中從何處取得包括要無線發送的分組的至少某些數據的數據元素,或者在接收情形中向何處寫入包括來自無線接收的分組的至少某些數據的數據元素。所接受的信息包括定義用于數據元素的網絡設備存儲器中的存儲位置和數據量。
該方法還包括在發送情形中建立用于要無線發送的分組的數據元素的DMA傳送,或者在接收情形中建立來自無線接收的分組的數據元素的DMA傳送,所述建立使用定義信息進行。
在發送情形中,該方法還包括將定義信息轉換為第一類型分組以在網絡鏈路上傳輸,并經由網絡鏈路將第一類型分組發送到網絡設備,在網絡設備處,第一類型分組被解釋來根據定義信息建立發送來自網絡設備存儲器的數據元素或者將數據元素寫入到網絡設備存儲器的操作。
另外在發送情形中,該方法包括響應于發送分組而接收包括數據元素的第二類型分組,將第二類型分組轉換為數據元素,并將數據元素并入到要發送的分組中,從而使經由網絡進行的傳送在發送期間實時發生。
在接收情形中,該方法包括從無線接收的分組中提取出數據元素,將數據元素封裝到第二類型分組中以寫入到網絡設備存儲器中,并將第二類型分組發送到網絡設備,在網絡設備處,第二類型分組被解釋,使得封裝數據根據定義信息被寫入到網絡設備存儲器中。
根據該方法,在發送情形中,經由網絡進行的并入到要無線發送的分組中的數據元素的傳送在發送期間實時發生,或者在接收情形中,經由網絡進行的傳送在接收期間實時發生。
另一個實施例是實現在網絡設備中的方法,在一個實施例中,網絡設備是網絡交換機。網絡設備經由網絡鏈路耦合到無線網絡(在一個實施例中,是IEEE 802.11無線網絡)的臺站,網絡鏈路例如是足夠快的以太網鏈路,如G比特或更快的以太網鏈路。網絡設備包括存儲器。該方法是在臺站處的無線發送或無線接收期間經由網絡鏈路實現來自或去往網絡設備存儲器的數據的流傳輸。
該方法包括經由網絡鏈路將信息發送到無線臺站,該信息描述了在發送情形中從何處取得包括要無線發送的分組的至少某些數據的數據元素,或者在接收情形中向何處寫入包括來自無線接收的分組的至少某些數據的數據元素。所接受的信息包括定義網絡設備存儲器中用于數據元素的存儲位置和數據量的信息。該方法還包括經由網絡鏈路接收來自無線臺站的第一類型分組。該分組包括描述從何處取得數據元素或向何處寫入數據元素的信息。
在要發送的分組的數據的情形中,該方法包括響應于接收到第一類型分組,從存儲器中取得數據元素,形成包括所取得的數據的第二類型分組;并響應于接收到第一類型分組而將第二類型分組發送到無線臺站,從而使經由網絡進行的并入到要無線發送的分組中的數據傳送在發送期間實時發生。
在數據來自接收分組的情形中,該方法包括接收來自無線臺站的封裝了數據元素的第二類型分組,從第二類型分組中提取出封裝數據,并根據接收到的第一種類的分組中的信息將所提取的數據寫入到存儲器中,從而使經由網絡進行的來自無線接收的分組的數據的傳送在接收期間實時發生。
其他方面將從這里的描述中變清楚。
圖1示出了用于無線局域網(WLAN)的現有技術無線網絡連接。
圖2示出了用于實現接入點(AP)的無線臺站的實施例。
圖3示出了用于實現接入點(AP)的無線臺站的實施例,包括到接入點的網絡鏈路。
圖4A和4B分別示出了根據本發明一方面的第一和第二特殊類型的以太網分組。
具體實施例方式
本發明的一方面提供了這樣一種方法和裝置,其允許要由無線臺站無線發送的分組的數據元素在發送期間經由網絡鏈路從遠離無線臺站的網絡設備處流傳輸。遠離無線臺站意味著無線臺站經由分組網絡鏈路(如以太網鏈路)連接到遠程設備。本發明的另一方面提供了這樣一種方法和裝置,其使來自無線接收到的分組的數據元素在接收期間經由鏈路網絡鏈路流傳輸到遠程網絡設備,從而使來自接收到的分組的數據可以實時存儲在遠程網絡設備中。
本發明的實施例將結合無線臺站進行描述,無線臺站是無線局域網(WLAN)中的接入點(AP)。在一個實施例中,遠程網絡設備是通過網絡鏈路耦合到無線接入點的網絡交換機。
去往和來自主機存儲器的實時數據流傳輸圖2示出了用于實現經由網絡鏈路228(一般是諸如以太網連接之類的有線網絡連接)耦合到網絡交換機229的接入點(AP)的無線臺站。臺站200的MAC處理功能被劃分在“低層MAC”203和DMA引擎223之間,“低層MAC”203實現以下這些功能,如利用PHY接口217接口到物理無線電(PHY)101,利用密碼引擎221進行加密/解密,以及實際接收和發送MAC分組。“高層MAC”功能(即,剩余MAC功能)實現在運行在主機處理器211上的軟件中。低層MAC 203經由總線子系統209耦合到主機處理器211。主機DMA控制器207和主機存儲器接口213也耦合到主機總線,其中主機存儲器接口213連接到主機存儲器215。
在臺站是接入點的示例中,臺站200包括連接到主機總線209的諸如以太網接口之類的網絡接口225。網絡接口將臺站200連接到網絡228(例如以太網)。交換機229被示為連接到網絡。交換機229自身包括經由本地交換機總線子系統243連接的本地交換機主機處理器233和交換機存儲器235。交換機例如可以在網絡操作系統(如IOS(California,SanJose,思科系統公司))的控制下進行操作。網絡接口(例如以太網接口231)將交換機總線連接到網絡228。
作為示例,假定低層MAC和主機處理器實現在包括存儲器接口213的同一集成電路(芯片)上。存儲器215是芯片的外部存儲器。
在圖2中未示出各種細節。例如,除了圖示的外部存儲器之外,還可以有某些緩存存儲器和主機的其他內部存儲器。
在發送期間,為了避免MAC處理器將其本地MAC存儲器219用作要發送的分組的存儲器緩沖的缺點,改進的實現方式使用跨總線子系統和存儲器接口的流直接存儲器訪問(DMA)—也稱為“數據流傳輸”,來直接訪問要從主機存儲器215發送的數據,而不涉及主機處理器211。為了提供這一點,分組/DMA引擎223包括用于建立DMA傳送的分散/聚集(scatter/gather)DMA控制器。
考慮這樣的示例主機處理器經由網絡228接收用于無線傳輸的分組。當主機處理器具有準備好發送的新的分組時,其通過向低層MAC 203提供足以建立傳輸的信息來通知低層MAC。該信息包括要發送分組的MAC頭部、建立MAC分組所需的任何數據的位置和關于如何從數據構造MAC分組的信息。在一個實施例中,由主機提供給低層MAC 203的信息包括一組數據結構—在這里被稱為“緩沖描述符”,其包括MAC分組的數據例如在主機存儲器215中的位置。
低層MAC 203提取要發送分組的頭部,并將其本地地存儲在其MAC存儲器219中。每個MAC分組的緩沖描述符也與MAC分組的MAC頭部一樣,本地地存儲在MAC存儲器219中。一旦頭部位于本地MAC存儲器219中,低層MAC 203就假設控制這些分組以用于發送。
每個緩沖描述符數據結構包括定義存儲器的鄰接量(contiguousamount)的字段,并且包括地址指針字段和數據長度字段。地址指針字段的內容指向存儲器中的位置,數據長度字段提供了開始于指針指向的地址處的數據的量(長度)。完整MAC分組包括多個這種緩沖描述符(在這里被稱為“緩沖描述符鏈”),這些描述符在一起描述要發送的MAC分組的數據的位置。即,一組緩沖描述符(每一個定義了數據的鄰接量)一起定義了用于形成要發送的MAC分組的一組不一定鄰接的數據。
注意,類似地定義有接收緩沖描述符的接收緩沖描述符鏈,其描述了接收的分組數據要存儲的位置。
臺站200具有存儲器映射,其定義了每個地址的位置,例如位于本地MAC存儲器中或者在主機存儲器215上。
分組/DMA引擎223的分散/聚集DMA控制器被用于建立數據的DMA數據傳送,所述數據是要寫入到存儲器的不一定鄰接區域或者從不一定鄰接區域讀出的數據。分散/聚集列表是向量列表,每個向量給出了整個讀或寫請求中一個片段的位置和長度。從而,要發送的MAC分組的每個緩沖描述符鏈包括足夠供分組/DMA引擎223建立分散/聚集列表的信息。分組/DMA引擎223解釋緩沖描述符鏈以形成分散/聚集列表。分組/DMA引擎223還負責遵循發送調度,并根據調度經由PHY接口發送MAC分組。
當需要發送MAC分組時,分組/DMA引擎223根據緩沖描述符鏈建立分散/聚集列表。每個向量對應于緩沖描述符,并且描述了由緩沖描述符定義的存儲器塊。分組/DMA引擎223與主機DMA控制器通信,并根據發送調度建立與主機DMA控制器的傳送。
在建立后,進行從主機存儲器和/或本地MAC存儲器的傳輸,以形成用于實時發送的MAC分組。
考慮在單個緩沖描述符中描述的存儲器的鄰接量的單個傳送。分組/DMA引擎223經由主機總線209將DMA信息和向量傳輸到主機DMA控制器207。主機DMA控制器與存儲器接口213通信,取得數據,并經由總線將數據發送到分組/DMA引擎223。
為了發送,數據可以按需經過密碼引擎,然后經由PHY接口,以經由PHY 101的發送部分發送。
這樣,避免了現有技術方法中的失誤情形,現有技術方法包括主機預測并以要發送的分組預先加載本地MAC存儲器。
在接收數據時,處理基本是相反的。在信息交換中,低層MAC從主機處理器211接收可以存儲接收到的分組的地址。具體而言,低層MAC203維護用于接收分組的一組接收緩沖描述符鏈。接收緩沖描述符鏈包括接收緩沖描述符,其指示接收到的分組的數據可以被存儲在主機存儲器215中的位置。當經由PHY接口217接收到數據后,分組/DMA引擎223建立數據傳送,包括可能經過密碼引擎221以進行解密。分組/DMA引擎中的DMA引擎建立DMA傳送所需的分散/聚集列表,并將該信息傳輸到主機DMA控制器。主機DMA控制器訪問存儲器映射,并建立到主機存儲器的每個DMA傳送,其中存儲器映射指示數據要寫入到存儲器中的位置,例如主機存儲器215上的位置。
經由有線網絡進行的流傳輸在本領域中,通常希望將更多的臺站功能移到網絡設備,例如經由網絡鏈路耦合到臺站的網絡交換機229。
圖2中所示的系統要求要發送分組的數據在臺站處排隊,例如在主機存儲器215中排隊,并且在主機存儲器215中可用于發送。
本發明的一個方面包括通過網絡鏈路的實時數據流傳輸,其使包括在要無線發送的分組中的數據在發送期間從網絡交換機直接流傳輸,而不一定要求在發送的無線臺站中排隊。本發明的另一個方面在接收期間使接收到的分組直接流傳輸到網絡交換機,而不要求在接收無線臺站中排隊。
圖3示出了體現本發明各個方面的裝置。總的體系結構類似于圖2中所示的情形,除了主機處理器的某些功能被轉移到網絡設備之外,例如經由有線網絡耦合到無線臺站的網絡交換機。即,無線臺站300包括低層MAC 303,低層MAC 303又包括分組/DMA引擎323、加密引擎321和本地MAC存儲器319。臺站300還包括主機總線子系統309上的主機處理器。存儲器接口319和主機DMA控制器307連接到主機總線309。在一個實施例中,低層MAC經由分組/DMA引擎323耦合到主機總線309。
臺站300經由網絡鏈路328耦合到網絡交換機329,網絡鏈路328經由耦合到主機總線309的網絡接口325耦合到主機總線子系統309。
交換機329包括本地交換機總線子系統343,本地交換機總線子系統343將交換機主機處理器333與交換機存儲器335相連。在一個實施例中,交換機還包括交換機DMA控制器341,交換機DMA控制器341耦合到交換機總線343,并且能夠與本地交換機存儲器335進行DMA傳送。網絡接口331將交換機連接到網絡328。
在一個實施例中,交換機329的主機333運行在網絡操作系統IOS(California,San Jose,思科系統公司)上。
注意,盡管圖2的臺站200的體系結構和圖3的體系結構是類似的,但是其功能卻是不同的,某些高層MAC功能當前在網絡交換機329中執行。從而,對于除了PHY 101以外的其他所有元件,在圖2和3中使用了不同的標號。然而,某些元件可以是相同的,這是本領域技術人員所清楚的。
本發明的一個方面在于至少某些要無線傳輸的MAC分組的數據在發送期間經由網絡鏈路328以流方式從交換機存儲器發送到低層MAC 303以由PHY 101發送,從而使數據不需要在主機存儲器中排隊。另一個方面在于由PHY 101接收的數據在發送期間可以以流方式直接經由網絡鏈路328發送到交換機,從而使接收到的數據不需要在主機存儲器中排隊。發明人認識到,有線網絡正變得足夠快以提供這種流傳輸。在優選實施例中,網絡328是G比特以太網。當然,這意味著至少與以太網鏈路一樣快的任何以太網鏈路都可以用作替換,并且對于本發明來說都在術語“G比特以太網”的范圍內。
為了提供流特征,本發明的一個實施例在臺站中包括網絡DMA引擎324,并且在交換機中包括匹配網絡DMA引擎338。在臺站300的情形中,網絡接口325包括網絡MAC和PHY接口326以及網絡DMA引擎324。在總線一側,網絡DMA引擎324表現為存儲器接口。主機DMA控制器307與網絡DMA引擎324通信(就好像其是存儲器接口一樣),還與存儲器接口313通信。接入點中的存儲器映射指示哪些存儲器地址由存儲器接口313處理,哪些由網絡DMA引擎324處理。
在交換機中,網絡接口331包括網絡DMA引擎338以及網絡MAC和PHY接口336。在交換機總線一側,網絡DMA引擎338表現為存儲器控制器。交換機存儲器映射指示哪些地址位于本地交換機存儲器335中,哪些由網絡DMA引擎338處理。
在發送情形中,當主機DMA控制器307接收到例如由低層MAC的分組/DMA引擎323建立的存儲器請求時,其根據地址與網絡DMA引擎324通信,或者與存儲器接口313通信。通常情況下,分組/DMA引擎323經由網絡DMA引擎324建立DMA傳送。DMA控制器307不需要知道從網絡DMA引擎324請求的任何數據實際上是來自于網絡鏈路的。
注意,在一個實施例中,地址向DMA控制器307指示DMA傳送是去往或來自DMA引擎324的還是去往或來自存儲器接口313的,而在替換實施例中,分離指示(例如控制位)被用于指示DMA傳送是去往或來自DMA引擎324的還是去往或來自存儲器接口313的。
類似地,交換機DMA控制器341將交換機網絡DMA引擎338視為其是存儲器接口設備一樣,并且不需要知道任何數據傳輸過網絡鏈路328。
本發明的另一個方面是分別由臺站主機和交換機的網絡DMA引擎324和338執行的處理。本發明的又一方面定義了用于建立網絡流傳輸,并在這種流傳輸期間承載數據的網絡分組類型。本發明的又一個方面是分別由臺站主機和交換機的網絡MAC和PHY接口326和336的過濾器327和337分別執行的接收過濾。
這些方面將首先在由無線臺站300進行無線發送的一組分組的上下文中進行描述。
首先考慮在圖2所示的實施例的發送期間的操作。這種情況下,交換機229將要由無線臺站200發送的任何分組路由到無線臺站。這些分組在主機處理系統中(例如在主機存儲器215中)排隊,并且主機與低層MAC 203通信以建立主機存儲器中的數據的DMA傳送,這種傳送例如是傳輸每個分組的分組頭部和一組緩沖描述符(緩沖描述符鏈)所要求的。
相反,在本發明的一個實施例中,當交換機329有要由無線臺站300發送的分組時,交換機329經由網絡328將關于要發送分組的信息(例如,每個要發送分組的頭部信息和緩沖描述符鏈)發送到臺站。這種信息被經由主機總線309傳輸到低層。主機在該過程中扮演無足輕重的角色。
在本發明的替換實施例中,主機接收關于要發送分組的至少某些數據存在于交換機中的何處的信息,并且主機利用這種由交換機發送的數據來建立緩沖描述符鏈。然而,數據自身保留在交換機中,直到其被流化以用于發送。例如,主機將從交換機發送的信息解釋為用于低層MAC的關于要發送分組的信息,并將該信息傳遞到低層MAC。
當低層MAC 303接收到要發送分組的頭部信息和描述符鏈時,低層MAC將頭部和關聯信息存儲在其本地MAC存儲器319中,并對發送進行調度。在發送開始時,MAC分組/DMA引擎323針對分散/聚焦訪問對建立每個分組所需的數據的進行DMA訪問。MAC分組/DMA引擎323將分散/聚集中的每個請求發送到主機DMA控制器307。這些請求被DMA控制器307解釋,并且依賴于地址被傳輸到存儲器接口313或網絡DMA引擎324。從而,對于位于主機存儲器313的地址范圍外的預定義地址范圍,主機DMA控制器307將網絡DMA引擎324視為存儲器接口。
對于每個存儲器請求,網絡DMA引擎324通過建立第一特殊類型的分組來建立網絡傳送,這種第一特殊類型的分組是控制分組,其描述了來自交換機存儲器的所需存儲器傳送形式的存儲器請求。該特殊分組包括指向交換機存儲器中的位置的指針數據和長度信息。這些特殊類型分組經由網絡328被發送到交換機。
網絡MAC和PHY接口336解釋其接收到的所有分組。在一個實施例中,網絡MAC和PHY接口336包括過濾器337,過濾器337向網絡DMA引擎338指示來自于其接收到的特殊類型分組的信息,以由網絡DMA引擎338作進一步處理。非特殊類型分組被正常處理并被傳遞。
網絡DMA引擎解釋來自于特殊類型分組的信息,以翻譯控制信息并將信息傳輸到交換機DMA控制器341,從而根據控制分組中的信息建立來自于交換機存儲器335的DMA傳送。DMA傳送被建立到目的地地址,目的地地址被交換機329理解為由網絡DMA控制器338處理的地址。網絡DMA控制器338對交換機DMA控制器338來說表現為存儲器接口。
去往低層MAC 303的數據被交換機的網絡DMA引擎338封裝為第二特殊類型的分組流數據封裝分組。每個流數據封裝分組包括相應請求分組的起始指針和長度數據元素,并且經由網絡328被發送到接入點300,并經由網絡MAC和PHY接口326被接收。
網絡MAC和PHY接口326包括過濾器327,過濾器327向網絡DMA引擎324指示要由網絡DMA控制器324處理的那些分組,即,第二特殊類型分組。非特殊類型分組由網絡MAC和PHY接口正常處理。
網絡DMA引擎324解釋第二特殊類型分組(即,流數據封裝分組)中的信息。一個方面在于第二特殊類型分組中的指針和長度信息被用于將分組匹配為對DMA請求的響應。網絡DMA引擎324移去數據—可能是加密數據,并經由總線309將它們作為對匹配DMA請求的響應傳輸。對于主機系統總線來說,這表現為由主機DMA控制器307建立的常規DMA響應傳送,因為對于這種傳送來說,網絡DMA引擎338就像是存儲器接口一樣。
DMA控制器307將取回的數據路由到低層MAC的發出請求的分組/DMA引擎,就好像它對任何DMA請求所作的那樣。
圖4A和4B示出了兩種特殊類型分組的結構。這些是包括類型(TYPE)字段的標準IEEE 802.3幀,類型字段的相應內容是兩個唯一的先前未定義的值,其分別用來定義第一類型和第二類型的分組。
圖4A示出了第一種類的分組400。前序、幀定界符開始、目的地地址和源地址字段是標準的。例如,源地址是臺站300的地址,目的地地址是交換機329的地址。下一字段403被用作類型字段,并且包括用于新類型的表示為類型1的代碼。這里可以使用任何先前未使用的值,只要該值足夠大以定義類型,并且未用于其他目的。分組400的剩余部分提供了用于數據傳送的指針和長度信息。這是利用標準信息元素列表結構來實現的,該結構開始于指示列表長度的列表長度字段405,然后是每個元素(這種情況下是指針元素和長度元素)的一組類型/長度/值三元組。從而,在列表長度字段405之后是字段407和字段409,字段407承載標識符的,表示為ID_pointer,其將元素標識為指針,字段409表示為Length_pointer,其指示指針數據的長度。下一字段411是指針數據自身,即從其取得數據的交換機存儲器中的地址。在指針數據字段411之后是字段413和字段415,字段413承載標識符,表示為ID_Length,其將元素標識為要取得數據的長度,字段415表示為Length_Length,其指示長度信息的長度。下一字段417是長度信息自身,即從交換機存儲器取得的數據的長度。
注意,發明人決定使用包括靈活信息元素列表結構的分組,以提供這些分組在未來使用的靈活性。在替換實施例中,使用更簡單的固定長度分組,其在類型字段403之后只包括緩沖指針和緩沖長度信息。
圖4B示出了第二種類的分組420,網絡DMA引擎338建立該第二種類的分組420,以用于發送在第一種類的控制分組400中定義的數據。前序、幀定界符開始、目的地地址和源地址字段同樣是標準的。例如,源地址是交換機329的地址,目的地地址是臺站300的地址。下一字段423被用作類型字段,并且包括用于另一種不同于控制分組400中所用類型的新類型的表示為類型2的代碼。這里可以使用任何先前未使用的值,只要該值足夠大以定義類型,并且未用于其他目的。分組420的剩余部分提供了用于數據傳送的指針和長度信息。列表長度字段425指示列表長度,在該分組420的情況下,其依賴于發送的數據量。在列表長度字段425之后是每個元素(這種情況下是指針元素、長度元素和傳送的數據)的一組類型/長度/值三元組。分別用于指針和長度的類型/長度/值三元組427和429與請求包括的數據的相應控制分組400中的相同。接著跟有承載標識符的字段431,表示為ID_data,其將元素標識為傳送的數據,然后是字段433,表示為Length_data,其指示數據的長度。下一字段435是被傳送的來自交換機存儲器的數據。
注意,以上描述對應于用于由主機DMA控制器307執行的存儲器取回的分組。
相同的特殊類型分組(在一個實施例中僅僅是其中之一)可用于DMA數據寫入,DMA數據寫入是在臺站300接收數據的情況下進行的。
在接收的情形中,交換機329發送信息,臺站300接受信息,該信息描述了將無線接收到的分組的數據元素(例如,接收到的分組的緩沖描述符的緩沖描述符鏈)寫入到交換機存儲器335中的何處。每個接收到的緩沖描述符定義了交換機存儲器中用于數據元素的交換機存儲器位置和的一定量的數據。
接收到的緩沖描述符鏈被存儲在低層MAC存儲器319中。
當接收到分組時,分組/DMA引擎323建立來自無線接收到的分組的數據元素的分散/聚集DMA傳送。用于DMA傳送的信息被傳輸到主機DMA控制器307,主機DMA控制器307建立各個數據元素傳送。實際的數據傳送作為接收期間的數據流進行,并且包括從無線接收的分組中提取數據元素,然后經由主機總線作為DMA傳送傳送到網絡DMA引擎324(回想一下,這對于主機總線和DMA控制器來說表現為存儲器接口)。
考慮要寫入到交換機存儲器335中的存儲器地址的鄰接塊中的單個數據塊的傳送。根據DMA請求中的指針地址,主機DMA控制器307確定出該地址是針對網絡DMA引擎324的,網絡DMA引擎324對于某一地址范圍對DMA控制器307來說表現為存儲器接口。
來自主機DMA控制器307的DMA請求被網絡DMA引擎324翻譯為第二特殊類型的分組,該分組包括用于傳送的指針和長度數據,以及要寫入到交換機存儲器中的傳送的數據元素。第二類型的分組被經由以太網MAC和PHY接口和網絡鏈路327通過網絡發送到交換機329。
在交換機處,第二類型的分組被以太網MAC和PHY接口336接收,該接口336包括過濾器337,過濾器337過濾出第二類型的分組,并將其中的信息(包括數據)傳遞到網絡DMA引擎338。網絡DMA引擎338解釋請求,建立并將數據寫入到交換機存儲器335中的存儲器位置。
從而,從無線臺站到交換機存儲器的經由網絡進行的數據流傳輸在接收期間實時發生。
注意,盡管在圖示實施例中,交換機和無線臺站中的網絡DMA引擎324和338(其解釋特殊分組,并將特殊分組轉換為存儲器流請求)各自都被示為網絡控制器的分組引擎的一部分,但是在替換實施例中,這些方面在交換機和無線臺站的每一個中的獨立設備中執行。
盡管當今的處理器使得網絡DMA引擎324和338可能是位于特殊硬件中,但是發明人認識到未來的可編程處理器可能足夠快以實現這種網絡DMA引擎。從而,網絡DMA功能可以實現在硬件中,可以實現在軟件(包括固件)中作為運行在可編程處理器上的一個或多個代碼段,或者可以實現在硬件和軟件的組合中。
類似地,盡管在一個實施例中,分組/DMA引擎323實現在硬件中,但是發明人認識到未來的可編程處理器可能足夠快以實現分組/DMA引擎323的功能的某些或全部。從而,分組/DMA引擎功能可以實現在硬件中,可以實現在軟件(包括固件)中作為運行在可編程處理器上的一個或多個機器可讀代碼段,或者可以實現在硬件和軟件的組合中。
圖3示出了包括低層MAC和MAC主機的接入點芯片的芯片邊界。在一個實施例中,主機處理器311是MIPS 5K處理器內核,主機總線是“SOC-it”總線(兩者都來自于CA,Mountain View的MIPSTechnologies,Inc.)。
在發送期間意味著在包括被流傳輸的數據的分組正被發送的期間。例如,“在發送期間”排除了被流傳輸的數據被包括在在臺站的主機存儲器中排隊的分組中以用于后續發送的情形。
在接收期間意味著在分組正被接收的期間,例如,在只有一個MAC處理器的情形中,在下一個接收的分組被MAC處理器在MAC級別處理之前。
這里所描述的每個方法的一個實施例是以指示機器實現方法的一組指令的形式存在的。從而,本領域技術人員將會意識到,本發明的實施例可以實現為方法、諸如專用裝置之類的裝置、諸如數據處理系統之類的裝置、或者載體介質,例如計算機程序產品。載體介質承載用于控制處理系統的處理器以實現方法的一個或多個計算機可讀代碼段。因此,本發明的各方面可以采用方法的形式、完全硬件實施例的形式、完全軟件實施例的形式或者組合軟件和硬件方面的實施例的形式。此外,本發明可以采用承載實現在介質中的計算機可讀程序代碼段的載體介質(例如,計算機可讀存儲介質上的計算機程序產品)的形式。可以使用包括存儲器在內的任何合適的計算機可讀介質。
應當理解,在一個實施例中,所討論的方法的步驟是由執行存儲在存儲介質中的指令(代碼段)的處理(例如計算機)系統的適當的(一個或多個)處理器執行的。應當理解,本發明并不限于任何特定的實現方式或編程技術,并且本發明可以利用用于實現這里描述的功能的任何適當的技術來實現。本發明并不限于任何特定的編程語言或操作系統。
整篇說明書中提及的“一個實施例”或“實施例”意味著結合實施例所描述的特定特征、結構或特性被包括在本發明的至少一個實施例中。從而,在整篇說明書中各處出現的短語“在一個實施例中”或“在實施例中”并不一定都是指相同的實施例。此外,特定特征、結構或特性可以在一個或多個實施例中以任何合適的方式加以組合,本領域技術人員從本公開中可以清楚這一點。
類似地,應當意識到,在本發明的示例性實施例的以上描述中,本發明的各種特征有時在單個實施例、附圖或其描述中被組合在一起,以使公開文件流暢并有助于理解各種創造性方面中的一個或多個。然而,該公開的方法并不是要解釋為反映出要求保護的發明需要比每個權利要求中明確表達的特征更多的特征。相反,如下面的權利要求所反映的,創造性方面比在前述單個公開實施例的所有特征少。從而,權利要求被結合在該具體實施方式
中,其中每個權利要求自身代表本發明的單獨實施例。
還應當意識到,盡管在耦合到接入點的網絡交換機的上下文中描述了本發明,但是本發明并不限于這種上下文,而是可以用在各種其他應用和系統中,例如用在包括經由網絡鏈路耦合到任何網絡設備的任何無線臺站的系統中。此外,本發明并不限于任何一種類型的網絡體系結構和封裝方法,而是可以與其他網絡體系結構/協議中的一種或其組合結合使用。
注意,發明人發現對于當前可獲得的IEEE 802.11標準,至少與G比特以太網一樣快的以太網提供了所需的等待時間。然而,本發明并不限于使用以太網作為臺站和無線設備之間的鏈路,而是可以使用G比特以太網或更快的鏈路。例如,可以使用無線網絡協議,該協議足夠慢,從而使得可以使用100MB以太網鏈路。另外,可以引入需要至少10GB以太網鏈路的更快的無線協議。所有這些都被包括在本發明的范圍內。
這里提到的所有公開、專利和專利申請都通過引用結合于此。
從而,盡管已經描述了被認為是本發明優選實施例的實施例,但是本領域技術人員將認識到,在不脫離本發明的精神的前提下可以對其進行其他和進一步的修改,并且所有這些變化和修改都落在本發明的范圍內。例如,以上給出的任何規則僅僅代表可以使用的流程。可以向框圖中添加功能,從框圖中刪除功能,并且可以交換各功能塊之間的操作。對于在本發明的范圍內描述的方法,可以向其添加步驟或者從其刪除步驟。
權利要求
1.一種用于在無線網絡的臺站中,在所述臺站處的無線發送或無線接收期間,通過耦合所述臺站到包括存儲器的網絡設備的網絡鏈路,流傳輸來自或去往所述網絡設備存儲器的數據的方法,所述方法包括接受信息,該信息在發送情形中描述從何處取回包括要無線發送的分組的至少一些數據的數據元素,或者在接收情形中描述將包括來自無線接收到的分組的至少一些數據的數據元素寫到何處,所接受的信息包括定義所述網絡設備的存儲器中用于所述數據元素的存儲器位置和數據量的信息;在發送情形中建立所述要無線發送的分組的數據元素的DMA傳送,或者在接收情形中建立所述來自無線接收到的分組的數據元素的DMA傳送,所述建立使用所述定義信息;以及在發送情形中將所述定義信息轉換為第一類型分組以通過所述網絡鏈路傳輸;經由所述網絡鏈路將所述第一類型分組發送到所述網絡設備,以在所述網絡設備處對所述第一類型分組進行解釋,從而根據所述定義信息發送所述來自所述網絡設備的存儲器的數據元素;響應于所述第一類型分組的發送來接收第二類型分組,所述第二類型分組包括所述數據元素;將所述第二類型分組轉換為所述數據元素;以及將所述數據元素并入到分組中以用于發送,或者,在接收情形中從所述無線接收到的分組中提取出所述數據元素;轉換所述定義信息,并將所述數據元素封裝到將通過所述網絡鏈路傳輸的第二類型分組中,以使所述數據元素將被寫入到所述網絡設備的存儲器中;以及將所述第二類型分組發送到所述網絡設備,以在所述網絡設備處對所述第二類型分組進行解釋,從而使得所述被封裝的數據根據所述定義信息被寫入到所述網絡設備的存儲器中,從而使得在發送情形中,通過所述網絡鏈路對將并入到所述要無線發送的分組中的數據元素的傳送在發送期間實時發生,或者使在接收情形中,對所述來自無線接收到的分組的數據元素的傳送在接收期間實時發生。
2.如權利要求1所述的方法,其中所述網絡設備是包括存儲器的網絡交換機,在無線發送期間使數據從所述存儲器流出,或者在無線接收期間使數據流入所述存儲器。
3.一種用于通過網絡鏈路耦合到無線網絡中的無線臺站的包括存儲器的網絡設備中,在所述臺站處的無線發送或無線接收期間,通過所述網絡鏈路流傳輸來自或去往所述網絡設備存儲器的數據的方法,所述方法包括通過所述網絡鏈路將信息發送到所述無線臺站,該信息在發送情形中描述從何處取回包括要無線發送的分組的至少一些數據的數據元素,或者在接收情形中描述將包括來自無線接收到的分組的至少一些數據的數據元素寫到何處,所接受的信息包括定義所述網絡設備存儲器中用于所述數據元素的存儲器位置和數據量的信息;以及在要發送的分組的數據的情形中,響應于接收到第一類型分組經由所述網絡鏈路接收來自所述無線臺站的第一類型分組,所述第一種類分組包括描述從何處取回所述數據元素的信息;從所述存儲器取回所述數據元素;形成包括所取回的數據的第二類型分組;以及響應于所述接收發送所述第二類型分組,或者,在來自接收到的分組的數據的情形中接收來自所述無線臺站的第二類型分組,所述第二類型分組封裝有所述數據元素,并且包括描述向何處寫入所述數據元素的信息;從所述第二類型分組中提取出所封裝的數據;根據所接收到的第二種類的分組中的信息將所提取出的數據寫入到所述存儲器中,從而使得在發送情形中,通過所述網絡鏈路對并入到要無線發送的分組中的數據的傳送在發送期間實時發生,或者使得在接收情形中,通過所述網絡鏈路對來自無線接收到的分組的數據的傳送在接收期間實時發生。
4.如權利要求3所述的方法,其中所述網絡設備是網絡交換機。
5.一種用于無線發送信息分組的方法,所述方法包括在發送期間通過網絡鏈路流傳輸包括所述分組的至少一些內容的數據元素;以及發送所述信息分組。
6.如權利要求5所述的方法,其中所述發送是由無線網絡的臺站執行的,并且所述流傳輸是從通過所述網絡鏈路耦合到所述臺站的網絡設備去往所述臺站。
7.如權利要求6所述的方法,其中所述網絡設備是包括存儲器的網絡交換機,在無線發送期間使所述數據從所述存儲器流出。
8.如權利要求6所述的方法,其中所述網絡設備包括存儲器,在無線發送期間使所述數據從所述存儲器流出,所述方法還包括形成對所述數據元素的DMA請求;將所形成的DMA請求轉換為第一分組,以通過所述網絡鏈路傳輸;通過所述網絡鏈路將所述第一分組發送到所述網絡設備;通過所述網絡鏈路接收來自所述網絡設備的第二分組,所述第二分組包含所述數據元素;以及以來自所述第二分組的所述數據元素對所形成的DMA請求作出響應,從而使所述數據的數據元素的流傳輸使用所述第二分組。
9.如權利要求8所述的方法,還包括從所述網絡設備接收關于要無線發送的數據駐留在所述網絡設備的存儲器中何處的信息,從而使所述DMA請求的形成使用所接收到的信息。
10.一種用于無線接收信息分組的方法,所述方法包括無線接收信息分組;在接收期間通過網絡鏈路流傳輸包括所述分組的至少一些內容的數據元素。
11.如權利要求10所述的方法,其中所述接收由無線網絡的臺站執行,并且所述流傳輸是從所述臺站去往通過所述網絡鏈路耦合到所述臺站的網絡設備。
12.如權利要求11所述的方法,其中所述網絡設備是包括存儲器的網絡交換機,在無線接收期間數據流傳輸到所述存儲器。
13.如權利要求11所述的方法,其中所述網絡設備包括存儲器,在無線發送期間數據流傳輸到所述存儲器,所述方法還包括形成用于寫入所述數據元素的DMA請求;將所形成的DMA請求轉換為第一分組,以通過所述網絡鏈路傳輸;通過所述網絡鏈路將所述第一分組發送到所述網絡設備;將所述數據元素封裝到第二分組中,以通過所述網絡鏈路傳輸到所述網絡設備;以及通過所述網絡鏈路將所述第二分組發送到所述網絡設備,以根據所形成的DMA請求寫入到所述網絡設備的存儲器中,從而使所述數據的數據元素的流傳輸使用所述第二分組。
14.如權利要求13所述的方法,還包括從所述網絡設備接收關于無線接收到的數據要寫入到所述網絡設備的存儲器中何處的信息,從而使得所述DMA請求的形成使用接收到的信息。
15.如權利要求1-2中任何一個所述的方法,其中建立所述DMA傳送是建立多個數據元素的分散/聚集DMA傳送的一部分。
16.如權利要求3-4中任何一個所述的方法,其中關于從何處取回數據元素或者將數據元素寫到何處的信息被用于建立DMA傳送,并且其中建立所述DMA傳送是建立多個數據元素的分散/聚集DMA傳送的一部分。
17.如權利要求1-4、6-9、11-16中任何一個所述的方法,其中所述網絡鏈路是千兆比特以太網鏈路,或者至少像千兆比特以太網鏈路一樣快的以太網鏈路。
18.如權利要求1-4、6-9、11-17中任何一個所述的方法,其中所述臺站是所述無線網絡的接入點。
19.如權利要求1-4、6-9、11-18中任何一個所述的方法,其中所述無線網絡遵從IEEE 802.11標準或其衍生標準之一。
20.如權利要求19所述的方法,其中所述分組是802.11MAC分組。
21.如權利要求8、9、13或14中任何一個所述的方法,其中所述網絡鏈路是千兆比特以太網鏈路,或者至少像千兆比特以太網鏈路一樣快的以太網鏈路,并且所述網絡設備是網絡交換機,所述無線網絡是遵從IEEE 802.11標準或其衍生標準之一的網絡,所述第一和第二分組分別是第一類型和第二類型的以太網分組。
22.一種可在無線網絡中工作的無線臺站中的裝置,所述裝置包括本地存儲器,其能夠接收描述獲得包括要無線發送的分組的至少一些數據的數據元素的位置的信息,所述位置位于通過網絡鏈路耦合到所述無線臺站的網絡設備的存儲器中;耦合到所述本地存儲器的分組/DMA引擎,所述分組/DMA引擎能夠建立所述要無線發送的分組的數據的DMA傳送,所述建立利用所述存儲器中的接收到的信息,并且形成定義所述網絡設備的存儲器中的一組至少一個位置的信息;以及耦合到所述分組/DMA引擎的網絡接口,所述網絡接口包括網絡DMA引擎,所述網絡DMA引擎能夠接受對數據傳送的DMA請求,并且能夠將定義信息轉換為第一類型分組,并致使所述網絡接口通過所述網絡接口耦合到的網絡鏈路來發送所述第一種類分組,從而使兼容的網絡設備可以解釋并取回由所述定義信息定義的數據,所述網絡接口還能夠識別并向所述網絡DMA引擎提供通過所述網絡鏈路接收到的第二類型分組,所述第二類型分組包括由定義信息定義的數據,所述網絡DMA引擎還能夠將所提供的第二類型分組轉換為其中包括的數據,從而使在所述臺站耦合到第一網絡并且通過所述第一網絡從也耦合到所述第一網絡的第一網絡設備接收到所述第二類型的第一分組的情形中,所述接收第二類型的第一分組是響應于發送第一種類的第一分組而進行的,并且所述發送第一分組是所述網絡DMA引擎接受第一DMA請求的結果,所述第一DMA請求定義要從所述第一網絡設備的存儲器取回的數據,所述網絡DMA引擎以在所述第一DMA請求中定義的數據來對所述第一DMA請求作出響應,并且使通過所述第一網絡并入到要無線發送的分組中的數據的傳送可以在發送期間實時發生。
23.如權利要求22所述的裝置,其中所述本地存儲器還能夠接收描述將來自無線接收到的分組的數據元素存儲到的位置的信息,所述位置位于通過所述網絡鏈路耦合到所述無線臺站的所述網絡設備的存儲器中,其中所述分組/DMA引擎利用所述本地存儲器中的接收到的信息還能夠建立包括所述無線接收到的分組的至少一些內容的數據元素的DMA傳送,其中所述網絡DMA引擎還能夠形成第二類型分組,所述第二類型分組包括由所述網絡DMA引擎接受的DMA請求中的定義信息定義的數據元素,并且其中所述網絡接口還能夠發送所形成的第二類型分組,從而使在所述臺站耦合到所述第一網絡并且所述第一網絡設備也耦合到所述第一網絡的情形中,作為所述網絡DMA引擎接受第二DMA請求的結果,第二類型的第二分組通過所述第一網絡被發送到所述第一網絡設備,所述第二DMA請求定義了要被發送到所述第一網絡設備的存儲器的數據,并且使通過所述網絡鏈路來自無線接收到的分組的數據的傳送在接收期間實時發生。
24.如權利要求22所述的裝置,所述裝置還包括耦合到主機總線子系統的主機處理器;和耦合到所述主機子系統的主機DMA控制器,其中所述分組/DMA引擎也耦合到所述主機總線子系統,并且能夠與所述主機DMA控制器進行通信,從而使所述分組/DMA引擎建立DMA傳送包括所述分組/DMA引擎指示所述主機DMA控制器建立所述DMA傳送,并且使所述網絡DMA引擎對所述主機DMA控制器表現為存儲器接口,其中所述本地存儲器還能夠接收將來自無線接收到的分組的數據元素存儲到的位置的信息,所述位置位于通過所述網絡鏈路耦合到所述無線臺站的所述網絡設備的存儲器中,其中所述分組/DMA引擎利用所述本地存儲器中的接收到的信息還能夠建立包括所述無線接收到的分組的至少一些內容的數據元素的DMA傳送,其中所述網絡DMA引擎還能夠形成第二類型分組,所述第二類型分組包括由DMA請求中的定義信息定義的數據元素,并且其中所述網絡接口還能夠發送所形成的第二類型分組。
25.如權利要求24所述的裝置,其中所述分組/DMA引擎包括用來建立多個數據元素的傳送的分散/聚集DMA控制器。
26.如權利要求22-25中任何一個所述的裝置,其中所述網絡設備是包括存儲器的網絡交換機,在無線發送期間數據從所述存儲器流傳輸。
27.如權利要求22-26中任何一個所述的裝置,其中所述網絡鏈路是千兆比特以太網鏈路,或者至少像千兆比特以太網鏈路一樣快的以太網鏈路。
28.一種無線發送信息分組的裝置,所述裝置包括用于無線發送信息分組的裝置;以及用于在發送期間通過網絡鏈路流傳輸包括所述分組的至少一些內容的數據元素的裝置。
29.如權利要求28所述的裝置,其中所述發送在無線網絡的臺站中執行,并且所述流傳輸是來自通過所述網絡鏈路耦合到所述無線臺站的網絡設備。
30.一種無線接收信息分組的裝置,所述裝置包括用于無線接收信息分組的裝置;用于在發送期間通過網絡鏈路流傳輸包括接收到的分組的至少一些內容的數據元素的裝置。
31.如權利要求30所述的裝置,其中所述接收在無線網絡的臺站中執行,并且所述流傳輸是去往通過所述網絡鏈路耦合到所述無線臺站的網絡設備。
32.如權利要求22-27、29或31中任何一個所述的裝置,其中所述臺站是所述無線網絡的接入點。
33.如權利要求22-32中任何一個所述的裝置,其中所述無線網絡遵從IEEE 802.11標準或其衍生標準之一。
34.如權利要求22-27中任何一個所述的裝置,其中所述無線網絡遵從IEEE 802.11標準或其衍生標準之一,并且其中要無線發送的分組是802.11MAC分組。
35.一種承載指示機器執行用于無線發送信息分組的方法的一組機器可讀指令的載體介質,所述方法包括在發送期間通過網絡鏈路流傳輸包括所述分組的至少一些內容的數據元素。
36.如權利要求35所述的載體介質,其中所述發送在無線網絡的臺站中執行,并且所述流傳輸是來自通過所述網絡鏈路耦合到所述無線臺站的網絡設備。
37.一種承載指示機器執行用于無線接收信息分組的方法的一組機器可讀指令的載體介質,所述方法包括在發送期間通過網絡鏈路流傳輸包括接收到的分組的至少一些內容的數據元素。
38.如權利要求37所述的載體介質,其中所述接收在無線網絡的臺站中執行,并且所述流傳輸是去往通過所述網絡鏈路耦合到所述無線臺站的網絡設備。
全文摘要
本發明公開了一種無線發送或接收信息分組的方法和一種無線發送或接收信息分組的裝置。在發送情形中,該方法包括在發送期間通過網絡鏈路流傳輸包括分組的至少一些內容的數據元素。在接收情形中,該方法包括在接收期間通過網絡鏈路流傳輸包括接收到的分組的至少一些內容的數據元素。發送或接收是由無線網絡的臺站(101)執行的,并且流傳輸是從通過網絡鏈路耦合到臺站的網絡設備(329)去往臺站的,或者從臺站去往該網絡設備的。
文檔編號H04L12/28GK1883212SQ200480033677
公開日2006年12月20日 申請日期2004年7月19日 優先權日2003年11月26日
發明者馬克·克里斯徹爾, 菲利普·J·雷恩, 邁克爾·J·韋布 申請人:思科技術公司