TWI314685B - Method and apparatus for use in a host system that intercommunicates with a network interface, computer-readable medium comprising instructions stored thereon, and computing system - Google Patents
Method and apparatus for use in a host system that intercommunicates with a network interface, computer-readable medium comprising instructions stored thereon, and computing system Download PDFInfo
- Publication number
- TWI314685B TWI314685B TW094126577A TW94126577A TWI314685B TW I314685 B TWI314685 B TW I314685B TW 094126577 A TW094126577 A TW 094126577A TW 94126577 A TW94126577 A TW 94126577A TW I314685 B TWI314685 B TW I314685B
- Authority
- TW
- Taiwan
- Prior art keywords
- payload
- buffer
- stream buffer
- header
- data stream
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 239000000872 buffer Substances 0.000 claims abstract description 181
- 238000012545 processing Methods 0.000 claims abstract description 35
- 230000005540 biological transmission Effects 0.000 claims description 18
- 238000012546 transfer Methods 0.000 claims description 16
- 238000004891 communication Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims 3
- 230000002452 interceptive effect Effects 0.000 claims 1
- 239000000463 material Substances 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 206010011469 Crying Diseases 0.000 description 1
- 241000408659 Darpa Species 0.000 description 1
- 241000255925 Diptera Species 0.000 description 1
- 241000239226 Scorpiones Species 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 235000012431 wafers Nutrition 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/621—Individual queue per connection or flow, e.g. per VC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9068—Intermediate storage in different physical parts of a node or terminal in the network interface card
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
1314685 九、發明說明: 【發明所屬之技術領域】 本發明係為一種減少接收側處理潛伏期延遲之技術 C先前技術;3 5 發明背景
網路屬於電腦系統之整合—體之一部分。但網路頻宽 的進展由於處理協定組合時相關聯之潛伏期延遲,因而尚 未能完整利用。潛伏期延遲係由於電腦系統之瓶頸所致, 電腦系統之瓶頸係由於伟田^ 、使用主機處理器之核心處理模組來 10 執行緩慢記憶體存取功能(, 诸如資料移動),潛伏期延遲也可 能來自於資料存取相關之主 。 主機處理器拖延而錯過主機之快 取。一協定組合表示一纟且妇卜 、、且程序及一組程式其可執行來透過 網路進送處理封包,此#& Λ處封包可能符合特定協定。例如 TCP/IP(傳輸控制協定/網 15 合處理。 際網路協定)封包可使用TCP/IP組
20 C 明内容;3 本發明係為一種方法,A . 古’包含有下列步驟··對與用於處 理之載;之-㈣提供制載是否準備好供處理 用之一指示。 圖式簡單說明 第1圖顯示可使用本發明之具體例之一種實例電腦系 統0 第2圖顯示根據本發明 之一具體例,機器可執行指令之 一實例。 5 1314685 第3圖顯示根據本發明之一具體例,一種網路介面之可 能之具體例。 第4圖顯示流程圖,其根據本發明之一具體例,可用來 分配一封包之標頭部分及酬載部分用於儲存於資料流缓衝 5 器。
10 15
20 第5圖顯示根據本發明之一具體例,提供即時處理可使 用之標頭,同時允許資料流緩衝器儲存於傳輸前須填入之 標頭相關聯之酬載之一實例程序。 第6圖顯示根據本發明之一具體例之一實例封包資料 流。 注意使用相同參考號碼與不同圖式指示相同的元件或 類似的元件。 I:實施方式3 較佳實施例之詳細說明 前文說明書中述及「一個具體例」或「一具體例」表 示就含括於本發明之至少一個具體例之具體例相關聯之一 特定特色、結構、或特徵。如此於前文說明書中各處出現 「於一具體例中」或「一具體例」並非必要全部皆表示同 一個具體例。此外,一或多個具體例之特定特色、結構、 或特徵可組合。 第1圖顯示可使用本發明之具體例之一實例電腦系統 100。電腦系統100包括主機系統102、匯流排130、及網路 介面140。主機系統102、匯流排130、及網路介面140可使 用單一電路板諸如系統主機板來交互通訊。系統主機板包 6 1314685
10 15
20 括-例如符合VGA標準及SVGA標準之圖形介面。 主機系統102可包括處理器11〇、主記憶體118、主儲存 裝置1—20、及記憶體至記憶體傳輸裝置125。處理議可實 作為複雜b集電腦(CISC)或精簡指令集電腦(⑽c)處理 器、雙核心處理器或任何其它處理器。主記憶體丨Μ可實作 為依電體U(例如RAM、DR趙、或SRAM)。主儲 存4置120可實作為磁碟機、光碟機、磁帶機、内部儲存裝 置、附接之儲存裝置、及/或網路可存取之儲存裝置。儲存 於主儲存裝置12G之常式及資訊可載人主記憶體ιι8且藉處 理器1職行。記憶體至記憶體傳輸裝置125可包括於主記 :體118内部、於主儲存裝韻。内部以及介於主記憶體ία =子裝置12°間至少執行記憶體至記憶體傳輸操作之 如記憶體至記㈣傳輸❹125可 存取(DMA)操作。 牧體 處理器110可通訊輕接可包括-主橋接片組(圖中未顯示)。晶片組 、主-體! 該系統可輕接處理㈣ 1體118、咖至記憶體傳輪 _至匯流_。晶片組也包括1/0 = 圖中未顯朴該純⑽接社橋接器㈣^糸^; 排m °晶片組可包括—或多個積體電路晶片,諸2 s W 體電路晶片組⑽如w形記Μ & / n ^ :)之晶片’但也可使—或; 匯流排130可提供 主機系統102與網路介面14〇間 之交 7 1314685 互通訊。匯流排13〇可支援節點對節點的通訊或節點對多節 點的通訊。匯流排130可與周邊元件互連(ρα)相容,卩口例 如述於周邊元件互連(PCI)局部匯流排規格修訂版22, 19卯 年12月18曰,得自PCI特殊興趣小組,美國俄勒岡州波特蘭 5 (及其各修訂版);PCI ExPress述於PCI特殊興趣小組之ρα
Express基礎規格修訂版1〇&(及其各修訂版pci_x述於 PCI-X規格修訂版i.oa,2〇〇〇年7月24日,得自前述]^1特殊 興趣小組,美國俄勒岡州波特蘭(及其各修訂版);串列ata 例如述於「争列ΑΤΑ :高速串列化ΑΤ附接」,修訂版丨.〇, 10 2001年8月29日由串列ΑΤΑ工作小組公告(及相關標準);通 用串列匯流排(USB)(及相關標準);以及其它互連標準。 %細系統100可利用網路介面丨來與網路15〇交互通 訊。網路150可為任何網路,諸如網際網路、企業網路、區 域網路、儲存區網路(SAN)、廣域網路(WAN)或無線網路。 15網路150可使用乙太網路標準(述於IEEE 802.3及其各相關 標準)或任何通訊標準來與電腦系統1〇〇交換訊務。 第2圖顯示根據本發明之一具體例,可被執行之機器可 執行指令,及/或可藉機器存取、運算及/或操作且可儲存於 主§己憶體118之資料。本實例中,主記憶體118可儲存封包 20缓衝器202、接收佇列204、裝置驅動器206、作業系統(〇s) 208、TCP組合209、插座層210、緩衝描述符211_〇至2ll_z 、資料流緩衝器212-0至212-Z及應用程式214。 封包缓衝器202可包括多個緩衝器,各個緩衝器可儲存 至少一個由網路(諸如網路15〇)接收得之輸入封包。封包緩 1314685 衝器搬可儲存由網路介面140所接收之多個封包,該等封 ^丁歹丨等候至少藉1置驅動器襄、组合勘 及/或應用程式214處理。 接收^丁列204可包括輸入仔列及輸出件歹卜輸入仲列可 5用來將描述符由主機系、_2傳輸至網路介面⑽。描述符 可描逑於緩衝器内部之所在位置及緩衝器可用於儲存一輸 入封包之長度L财用於將回送之描述符由網路介 面140傳輪至主機系統1()2。回送描述符可描述特殊輸入封 1包儲存於封包緩衝器202内部之缓衝器,且識別封包特色, 10封包特色諸如㈣限讀人封包長度、RSS_值及封包型 別及檢查和合格/不合格。 15
20 裝置驅動器206可為網路介面14〇用之裝置驅動器。裝 置驅動器206可开》成描述符且可管理描述符於接收仔列2〇4 之使用及分配。裝置驅動器2〇6可請求使用一輸入接收佇列 將描述符傳輸至該網路介面14〇。裝置驅動器2〇6可分訊通 知網路介面140 :於輸入接收佇列有一描述符可資利用。裝 置驅動器206可處理來自網路介面14〇之通知,該通知通知 主機系統102將一輸入封包儲存入封包緩衝器2〇2。裝置驅 動器206可基於描述此種輪入封包之一回送描述符來判定 D亥輪入封包於封包緩衝器2〇2之所在位置。裝置驅動器2〇6 可通知操作系統208此種已經儲存之輸入封包之利用性及 所在位置。一具體例中,裝置驅動器206可將一缓衝器描述 符與各個標頭結合,此處該緩衝器描述符係用於根據本發 明之具體例,儲存與此種標頭相關之酬載之資料流緩衝器。 9 1314685 5
10 15
20 OS 208可為任一種可由處理器11〇執行的作業系統。一 具體例中,0S 208可為允許藉「頁面翻轉」而進送資訊之 頁面緩衝器内容之任一種作業系統,藉此可經由操縱系統 頁面表來調換於系統頁面表内部之分錄而傳輪一資料頁面 緩衝器。頁面翻轉可避免資料拷貝,資料拷貝可用來將資 料由核空間移動至應用空間。例如0S 208之適當具體例包 括但非限於Linux、FreeBSD、或微軟視窗(Micr〇s〇ft Windows)可相容之作業系統。 TCP組合2〇9可處理封包來判定根據相關TCp/Ip標準 之tcp/ip順從性。TCP/IP協定係述於公開文獻,名稱「傳 輸控制協定:DARPA網際網路程式協定規格」,準備用於防 <示先進叶劃研究協會(RFC 793,1981年9月公告)。 插座層210可將資料由TCP組合2〇9傳輸至應用層。例 如,根據本發明之一具體例,基於相關聯之緩衝器描述符 指示緩衝器為已滿,或緩衝器未滿,插座層210可判定何時 將資料流緩衝器内容傳輸至應用層。 資料流緩衝器212 - 0至資料流緩衝器2丨2 _ z可儲存接收 才于之封包之酬載部分及/或標頭部分。資料流緩衝器212-0 至資料流緩衝器212-Z可使用單頁面緩衝器實作。一具體例 中,儲存於資料流缓衝器212_〇至資料流緩衝器212-Z之資 訊可藉頁面翻轉操作而移至常式或應用程式。各個緩衝器 描述符211 _ 〇至2丨丨_ z可與個別之資料流緩衝器2丨2 _ 〇至 212_Z相關聯。一具體例中,緩衝器描述符211_〇至211_2各 自包括一攔位,該欄位指示相關緩衝器是否為滿或未滿(由 10 1314685 BF/BNF攔位指示)。此外,缓衝器描述符211-0至211名可描 述下列相關資料流缓衝器212-0至212-Z之參數:協定、位 址、指標器、檢查和、優先順位及其它含括於但非限於Linux SKB網路緩衝器之參數。 5 應用程式214可為由主機系統102或網路150存取資料
之—或多個機器可執行程式。應用程式214例如包括網路瀏 覽器、電子郵件伺服應用程式、檔案伺服應用程式、或資 料庫應用輕式。 第2圖所示機器可執行之指令可實作為下列任一者或 10其組合:有線接線邏輯、藉記憶體裝置儲存且可由微處理 器執行之軟體、韌體、特殊應用積體電路(ASIC)及/或現場 可規劃閘陣列(FPGA)。 15 第3圖顯示根據本發明之一具體例,一種網路介面14〇 之一可能具體例,但也可使用其它具體例。例如,網路介 面140之另一具體例包括但非限於LAN於主機板之具體例 ,或網路存取裝置整合於由處理器11〇使用之主機板或晶片 組之具體例。舉例言之,網路介面14〇之一具體例可包括收 發器302、匯流排介面304、描述符管理器3〇6、佇列控制器 310、分類識別符320、及記憶體33〇。 收發器302包括可遵照可應用之協定如乙太網路協定 而可接收及發送封包之一媒體存取控制器(MAC)及實體層 介面(二者皆未顯示於圖中)’但也可使用乙太網路協定以外 之協定。收發器302可透過網路媒體由網路15〇接收封包及 發送封包至網路150。 11 1314685 匯流排介面304可提供網路介面140與匯流排130間之 父互通訊。匯流排介面3〇4可實作為PCI、PCI Express、PCI-x 、串列ΑΤΑ及/或USB可相容介面(但也可使用其它標準)。例 如匯流排介面304可包括直接記憶體存取(DMA)引擎3〇5, 5且利用該直接記憶體存取(DMA)引擎305來執行由主記憶 體118及/或主儲存裝置〗2〇直接記憶體存取入網路介面“ο ,或執行由網路介面140直接記憶體存取入主記憶體118及/
或主儲存裝置120。舉例言之,DMA引擎3〇5可執行直接記 憶體存取來將輸入封包傳輸至由回送描述符所識別之封包 10 緩衝器202之一緩衝器。 描述符管理H 306可初始化由該接㈣列之輸入仔列 存取描述符。例如描述符管理器鳩可通知DMA引擎3〇5來 由接收狩列306之輸入仔列讀取一描述符,且儲存該描述符 。描述符管理㈣6可儲存描述候_容緩_之描述符於 15可儲存輸入封包之封包緩衝器208。 1 丁雜制器310可決定封包緩衝器咖之一緩衝器來健 存至少-個輸人封包。-具體例中,基於描述符儲存裝置 2〇8之描述符,仔列控制器3_成一回送 20 =述將寫入-輸入封包之-緩衝器。回送描: 被刀配來使用輸出仔列傳輸至主機系統 Γ可指示胸㈣胸各個輪順傳駐姑t
=由相關之回送描述符所識別之接收緩衝器。例如^ 工制益細可將_送描料置於 T 斷來通知主機系統耽-輪人封㈣如回送描 12 1314685 存於輸出佇列。 分類識別符320可基於相關標頭之性質而判定與一封 包相關之分類。分類可於回送描述符傳輸至主機系統1〇2 6 記憶體330可實作為非依電性或依電性記憶體裝置(例 5 如 RAM、EEPROM、ROM、PROM、DRAM 或 SRAM)。記 憶體330可提供離開網路介面i4〇及輪入網路介面i4〇之資 訊之緩衝與儲存。
網路介面140可實作為下列任一者或其任一種組合:有 線接線邏輯、藉記憶體裝置儲存且可由微處理器執行之軟 10體、韌體、特殊應用積體電路(ASIC)、及/或現場可規劃閘 陣列(FPGA)。 15 20 第4圖顯示根據本發明之一具體例之流程圖,該流程可 用來將一封包之標頭部分及酬載部分分配供儲存於資料流 緩衝器212-0至212-Z。於方塊4〇2,裝置驅動器206可形成 一或多個描述符,描述符各自描述於封包緩衝器2〇2之至少 個位置,於該位置用來儲存接收自網路丨5〇之一封包之標 頭邛分及酬載部分。描述符可置於接收佇列2〇4之輸入佇列 來傳輪該描述符至網路介面14〇。 於方塊404 ’網路介面14〇可由網路丨5〇接收至少一個封 包。例如封包可符合乙太網路格式,但也允許採用其它格 式0 於方塊406’網路介面14〇可基於位於得自主機系統1〇2 之描述符上之封包緩衝器,來將一或多個封包酬載及標頭 傳輸入主記憶體118。例如網路介面14〇之佇列控制器31〇可 13 1314685 基於可利用之4¾述4來判定於封包緩衝之哪一個緩 衝器將用⑽存雜人封包。例如基於所判定之封包緩衝 益202之封包緩衝器,網路介面14〇2DMA引擎3〇5可將接收 得之輸入封包傳輸入封包緩衝器搬之該封包缓衝器。
10 15
20 於方塊408 ’網路介面14〇可判定封包分類,且完成該 封包之-回送描述符。分類可為由網路介面剛基於該封包 之標頭及/或喊計算得之—_值,該分類可絲輔助資 料流的識別及於資料流内部之定位。例如用於Tcp/ip連处 ’網路介面140可使用-個5重元組來判定分類。-個5重元 組包括封包來源1P位址、目的地IP位址、來源埠、目的地 隼及協疋。例如各刀類可指派給—個特定魔大資料傳輸(例 如ftp處理)或應用,但也可使用其它指派。網路介面14〇可 將該分類插人-㈣描•,収完成翻送描述符之其 它搁位’來指示該封包之儲存《及記Μ所在位置。 、 彳呀,丨匈140可傳輸該具有分類之回送插 述符至主機系統102。例如網致八;]j Λ J如、·、罔路介面140之佇列控制器3丨〇可 將回送描述料至騎輸㈣列。例如於錢,網路介 〇可透過岔斷通知裝置轉器观來請求接收得之封包 處理。網路介面140之仔列控制器31〇可形成㈣來通㈣ 置驅動器206’ 一或多個铪人Μ — , 乂 輸入封包係如一或多個回送描述符 之描述而被儲存於該輸出佇列。 於方塊412 ’裝置驅動哭)a ^ 勒态206可決定—資料流,以及於 貧料流内部儲存該封包酬巷 甽戰之位置。例如,各資料流於資 料流緩衝器212-0至212-ΖΨ可亡斗、々 z中可有一或多個相關聯之資料流 14 1314685 緩衝器,資料流缓衝器可以先進先出格式填補一具體例 中,裝置驅動器206可基於多項因素決定資料流_器以及 儲存酬載(及/或標頭)之資料流缓衝器内部位置,哼等決定 因素包括但非限於分類及各個資料流緩衝器 5資料流缓衝器與資料流之關聯。一具體例中,各個=料流 緩衝器可為頁面尺寸,可儲存約4096位元組,但也可使用 其它尺寸。
10 15
20 於方塊4H,基於所識別之資料流及所識別之資料㈣ 部位置,裝置驅動謂6可指示於主㈣統丨.記憶體至 記憶體傳輸裝置125來傳輸儲存於封包緩衝器2〇2中之一封 包緩衝器之酬载至資料流緩衝器212_〇至212_2内部之適當 位置。-具體例中,標頭也可傳輸至資料流緩衝器212_〇至 212-Z。#此,、經由使用記憶體至記憶體傳輸裝置125,裝 置驅動器206可使用處理器11()及相關聯之資源來避免㈣ 傳輸操作。於酬載已經被置於資料流緩衝器212_〇至212_2 内部之適當位置中之該特定位置後’裳置驅動器鳩可發出 一岔斷給TCP組合209來指示一封包已經可供處理。 資料流缓衝器頁面大小可為標準乙太網路格式之最大 尺寸之數倍。當將酬載儲存成—頁面時,等候酬載來填補 全頁,可能造成TCP連結之問題。可能需要對接收得之封 包產生確認(ACK信號)’接收得之標頭之資訊需要即時處理 。若標頭處理被延遲來等候酬载之頁面補滿、或資料流的 結束’ TCP組合可岔斷此種情況t作錯誤。第5圖顯示根據 本發明之-具體例’-種實例料來提供可用標頭之即時 15 1314685 處理’同時允許㈣流緩衝器儲存與標頭相關聯之酬載來 於傳輸前填補。
於方塊5〇1,標頭可用於藉TCP組合209處理。一具體 例中,一旦可能標頭即可用於藉Tcp組合2〇9處理。例如, 5經由對纟置驅動器206提供岔斷而可利用標頭,或裝置驅動 器206使用輪詢技術來判定是否任何標頭可供用於處理。裝 置驅動為'206可移轉標頭至tcp組合2〇9用於處理。 於方塊502,裝置,動器2〇6可決定儲存與可用之標頭 相關聯之酬載之該資料流緩衝器(資料流緩衝器212_〇至 10 15
212-Z中之該資料流緩衝器)是否準備傳輸。例如當資料流 緩衝器滿時’資料流緩衝器準備傳輪。—具體例中,與資 料流緩衝器相關聯之緩衝描述符中之「緩衝器滿」/「緩衝 裔'未滿」旗標經檢查來判定緩衝器是否為滿 衝器準備進行傳輸,則接著進行方塊55〇。 尚未準備傳輸,則接著進行方塊5〇4。 若資料流緩 #資料流緩衝器 ,两吋,當條件祧佬用 時,諸如當推送、急迫及其它蚊旗標與錯誤 可用之標頭及相關聯之酬载及先前懸置中之 ^ 處理,酬載可拷貝入應用緩衝器。 ,可退出 於方塊504,裝置驅動器施可提供 尚未滿」(BNF)之相關聯緩衝器描述符給Tcp钽八钹衡: 處理。 ’。209進行 於方塊506,TCP組合2〇9可處理標 TCP/IP。符合TCP/IP協定例如包括:證 頭來決定是否符合 實接收得之封包序 16 1314685
10 15
號,來確保封包係於符合通訊節點間之數目範圍;證實酬 載大小,來確保封包係於符合通訊節點間之大小範圍;確 保標頭結構係符合協定;產生ACK信號來傳輸給封包來源 ;以及確保時間戳記係於期望之時間範圍。 提供標頭處理,同時相關聯之酬載尚未準備傳輸,允 許TCP組合209以即時方式處理標頭(例如以即時方式進 送ACK信號)。若經由等候一頁面全滿之酬載或資料流結 束,則標頭之處理延遲,TCP組合209可岔斷此種情況當 作錯誤。 於方塊508,若已經成功地處理標頭,則TCP組合209 可傳輸相關聯之緩衝器描述符給插座層。 於方塊510,於資料流頁面緩衝器準備供傳輸後,插座 層可傳輸與缓衝器描述符相關聯之資料流頁面缓衝器。例 如,插座層可等候儲存與標頭相關聯之酬載之缓衝器滿時 ,隨後才進行頁面翻轉來傳輸此資料流緩衝器内容至一應 用層。例如插座層等候至相關聯之緩衝器描述符之「缓衝 器未滿」旗標改成「緩衝器滿」,才將此資料流緩衝器之内 容頁面翻轉。 於方塊550,裝置驅動器206將可供處理用之標頭、及 20 儲存與標頭相關之酬載之資料流緩衝器之缓衝器描述符傳 輸至TCP組合209。 於方塊552,TCP組合209根據TCP/IP標準來處理所傳 輸之標頭,來以類似就方塊506所述之方式判定符合TCP/IP 。若標頭成功地經處理,則TCP組合209可將相關聯之缓衝 17 1314685 器描述符傳輸至OS 208之插座層。 …於方塊554,插座層可傳輸可供傳輸之各f料流頁面緩 衝°°例如,一貧料流頁面可傳輸至一應用層。於方塊554 5二座層z傳輸任何資料流頁面緩衝器,該資料流頁面緩 衝时為先别無法用於傳輸,但目前已經可用於傳輸。例如 插座層經由檢測與相關聯之緩衝器描述符之「緩衝器未滿
」Ά狀恶改變成為「緩衝器滿」之旗標狀態而可供傳輸 用。因此資料流頁面可藉頁面翻轉而傳輸。 第6圖顯示根據本發明之一具體例之一實例封包資料 〇 。於6〇2及604 ’網路介面14〇接收個別封包A及β。於606 及6〇8,網路介面14〇傳輸封包八及8之標頭部分及酬載部分 至封包緩衝器202之儲存裝置。於610及612,基於資料流識 別符以及基於與封包Α&Β相關聯之資料流所在位置,酬载 Α及Β使用例如記憶體至記憶體傳輸裝置125而傳輸至個別 15貝料流緩衝器A&B之儲存裝置。資料流緩衝器Λ係藉加入 酬載Α而填滿,但資料流緩衝器Β並未藉加入酬載Β填滿。 於614及616,標頭A及B係分別傳輸至TCP組合209。於 618,儲存與標頭a相關聯之酬載之資料流緩衝器之缓衝器 描述符A傳輸至TCP組合209,設定「緩衝器滿」(BF)旗標 2〇 。於,儲存與標頭B相關聯之酬載之資料流緩衝器之緩 衝态描述符B傳輸至TCP組合209,設定「緩衝器未滿」(BNF) 旗標。 於622及624’於標頭A及B被判定為符合TCP/IP後,TCP 組合209將緩衝器描述符a及β傳輸至〇s 2〇8之插座層。 18 1314685 於626,插座層對資料流緩衝器A進行頁面翻轉,藉此 讓其可供應用層使用。於628,於等候資料流緩衝器B變滿( 如緩衝器描述符B指示)後,插座層翻轉頁面緩衝器B,藉此 讓其可由應用層之應用程式利用。 5 圖式及前文說明係對本發明之實例舉例說明。雖然於
此處實例提供各個元件操作間之劃界,但一個元件之操作 可由一個或多個其它元件進行。本發明之範圍絕非受此等 特例所限。無論是否於本說明書外顯指示,多種變化諸如 結構、維度及材料使用上之變化皆屬可能。本發明之範圍 10 至少係由如下申請專利範圍界定。
【圖式簡單說明:J 第1圖顯示可使用本發明之具體例之一種實例電腦系 統。
第2圖顯示根據本發明之一具體例,機器可執行指令之 一實例。 第3圖顯示根據本發明之一具體例,一種網路介面之可 能之具體例。 第4圖顯示流程圖,其根據本發明之一具體例,可用來 分配一封包之標頭部分及酬載部分用於儲存於資料流緩衝 20 器。 第5圖顯示根據本發明之一具體例,提供即時處理可使 用之標頭,同時允許資料流緩衝器儲存於傳輸前須填入之 標頭相關聯之酬載之一實例程序。 第6圖顯示根據本發明之一具體例之一實例封包資料 19 210.. .插座層 211.. .緩衝器描述符 212.. .資料流缓衝器 214.. .應用程式 302.. .收發器 304.. .匯流排介面 305.. .直接記憶體存取(DMA) 引擎 306.. .描述符管理器 310.. .佇列控制器 320.. .分類識別符 330.. .記憶體 402-414、501-554...方塊 602-628...步驟
1314685 流0 【主要元件符號說明】 100.. .電腦系統 102.. .主機系統 110.. .處理器 118.. .主記憶體 120.. .主儲存裝置 125.. .記憶體至記憶體儲存裝置 130.. .匯流排 140.. .網路介面 150.. .網路 202.. .封包缓衝器 204.. .接收佇列 206.. .裝置驅動器 208.. .作業系統(OS) 209.. . TCP 組合 20
Claims (1)
- 98.02.24. 第94126577號申案甲請專利'範圍修正本 十、申請專利範圍: 1. 一種用於與網路介面相互通訊之主機系統内的方法,包 含有下列步驟: 在一主機記憶體接收來自一網路之具有一酬載和 5 與該酬載相關聯之一標頭的一封包; 將該酬載儲存於一資料流緩衝器中; 基於一指示來判定該主機系統是否準備好要處理 該酬載; 不管是否判定該主機系統準備好要處理該酬載,處 10 理該已接收封包之標頭和該指示;以及 響應於該判定來處理該酬載。 2. 如申請專利範圍第1項之方法,其中該指示係部分基於 儲存該酬載之該資料流缓衝器是否已滿而產生。 3. 如申請專利範圍第1項之方法,其中該指示包含於與儲 15 存該酬載之該資料流緩衝器相關聯之一缓衝器描述符 中之一旗標,以及其中該旗標指出該緩衝器是否已滿。 4. 如申請專利範圍第1項之方法,其中該資料流緩衝器為 一頁面尺寸緩衝器以支援頁面翻轉。 5. 如申請專利範圍第1項之方法,其中該資料流緩衝器可 20 藉頁面翻轉而傳輸。 6. 如申請專利範圍第1項之方法,其中該已接收封包之該 標頭的處理包含判定該已接收封包之該標頭是否符合 TCP/IP。 7. 如申請專利範圍第6項之方法,其中處理該酬載之步驟 21 1314685 包含 響應於該已接收封包之該標頭符合tcpwp的判定 ,以及有儲存該酬載之該資料流緩衝器可供傳輸給一應 用層,而選擇性提供該酬載至該應用層。 8. 如申請專利範圍第1項之方法,其中將該酬載儲存於資 料流緩衝器中之步驟包含: 將該酬載儲存入一酬載緩衝器;部分基於與該酬載相關聯之該標頭,來判定要儲存 該酬載之該資料流緩衝器;以及 10 使用一直接記憶體存取操作將該酬載由該酬載緩 衝器傳輸至所判定之該資料流缓衝器。 9. 一種用於與網路介面相互通訊之主機系統内的裝置,包 含: 供儲存一標頭用之一缓衝器; 15 供至少儲存與該標頭相關聯之一酬載之一資料流緩衝器;以及 堆疊層邏輯裝置,其係用來: 基於一指示判定該主機系統是否準備好要處理該 酬載; 20 不管是否判定該主機系統準備好要處理該酬載,處 理該標頭和該指示;以及 響應於該判定來處理該酬載。 10.如申請專利範圍第9項之裝置,其中該指示係部分基於 儲存該酬載之該資料流緩衝器是否可供傳輸用而產生。 22 1314685 11. 如申請專利範圍第10項之裝置,其中該資料流緩衝器部 分基於該資料流緩衝器是否已滿而可供傳輸。 12. 如申請專利範圍第9項之裝置,其中該資料流缓衝器為 一頁面尺寸緩衝器以支援頁面翻轉。 13. 如申請專利範圍第9項之裝置,其中該資料流緩衝器可 藉頁面翻轉而傳輸。 14. 如申請專利範圍第9項之裝置,其中該堆疊層邏輯裝置 去處理該標頭係判定該標頭是否符合TCP/IP。 10 15. 如申請專利範圍第14項之裝置,其中處理該酬載之動作 包含: 插座層邏輯裝置,用來響應於該標頭符合TCP/IP 的判定,以及該指示指出該資料流緩衝器可供傳輸至一 應用層,來選擇性傳輸該資料流緩衝器的内容至該應用 層。 15 16.如申請專利範圍第9項之裝置,其中該資料流緩衝器係屬於多個資料流緩衝器之一,以及其中一第二緩衝器儲 存該酬載,以及進一步包含: 裝置驅動器邏輯裝置,用來部分基於與該酬載相關 聯之該標頭,判定該等多個資料流緩衝器中之哪一個資 20 料流緩衝器將儲存該酬載;以及 一記憶體至記憶體傳輸裝置,用來使用一直接記憶 體存取而將來自該第二緩衝器之酬載傳輸入該經判定 之資料流緩衝器,其中該經判定之資料流緩衝器包含至 少儲存與該標頭相關聯之一酬載之該資料流緩衝器。 23 131468517. —種儲存有指ϋϊ腦可讀媒體,該等指令在由一機器 執行時會造成該機器執行下列動作: 在一主機記憶體接收來自一網路之具有一酬載和 與該酬載相關聯之一標頭的一個封包; 將該酬載儲存於一資料流缓衝器中; 基於一指示判定該主機系統是否準備好要處理該 酬載;10 不管是否判定該主機準備好要處理該酬載,處理該 已接收封包之標頭和該指示;以及 響應於該判定來處理該酬載。 18. 如申請專利範圍第17項之電腦可讀媒體,其中該指示係 部分基於儲存該酬載之該資料流緩衝器是否已滿而產 生。 19.如申請專利範圍第17項之電腦可讀媒體,其中該指示包 15 含於與儲存該酬載之該資料流緩衝器相關聯之一緩衝器描述符中之一旗標,以及其中該旗標指出該緩衝器是 否已滿。 2 〇.如申請專利範圍第17項之電腦可讀媒體,其中該資料流緩 衝器為一頁面尺寸緩衝器以支援頁面翻轉。 20 21.如申請專利範圍第17項之電腦可讀媒體,其中該資料 流緩衝器可藉頁面翻轉而傳輸。 22.如申請專利範圍第17項之電腦可讀媒體,其中處理該已 接收封包之該標頭包含判定該已接收封包之該標頭是 否符合TCP/IP。 2410 1520 23. 如申請專利範圍第22項之電腦可讀媒體,其中處理該酬 載之動作會進一步: 響應於該已接收封包之該標頭符合TCP/IP的判定 ,以及有儲存該酬載之該資料流緩衝器可供傳輸給一應 用層,而選擇性提供該酬載至該應用層。 24. 如申請專利範圍第20項之電腦可讀媒體,其中將該酬載 儲存於一資料流緩衝器中之動作係要: 將該酬載儲存入一酬載緩衝器; 部分基於與該酬載相關聯之該標頭,來判定要儲存 該酬載之該資料流緩衝器;以及 使用一直接記憶體存取操作將該酬載由該酬載緩 衝器傳輸至所判定之該資料流緩衝器。 25. —種運算系統,其包含有: 一個如申請專利範圍第9項所述之裝置; 一運算平台,其包括一主機處理器、一記憶體裝置 、及一記憶體至記憶體傳輸裝置; 一網路介面,其係用來接收包含一酬載以及與該酬 載相關聯之標頭之至少一封包,以及傳輸該封包至該 記憶體裝置内部之一封包緩衝器中;以及 一匯流排,其可於至少該運算平台與網路介面間提 供交互通訊功能。 26. 如申請專利範圍第25項之系統,其中該匯流排係與PCI Express規格相容。 27. 如申請專利範圍第25項之系統,其中該匯流排係與PCI 25 1314685510 規格相容。 28. 如申請專利範圍第25項之系統,其中該網路介面係整合 於該運算平台中。 29. 如申請專利範圍第7項之方法,其中選擇性地提供該酬 載給應用層之步驟,包含在一插座層判定該指示指出該 資料流缓衝器已滿時,提供該酬載給該應用層。 30. 如申請專利範圍第15項之裝置,其中選擇性傳輸該資料 流缓衝器内容至該應用層之該插座層邏輯裝置,係在該 插座層邏輯裝置判定該指示指出該資料流緩衝器已滿 時,傳送該資料流缓衝器的内容給該應用層。 31. 如申請專利範圍第23項之電腦可讀媒體,其中選擇性地 提供該酬載給應用層之動作,包含當一插座層判定該指 示指出該資料流緩衝器已滿時,提供該酬載給該應用層26 13146851/6 Φ Φ 1001314685 2/6封包緩衝器 202 接收仔列 204 裝置驅動器206 OS208 TCP 堆209 插座層 210 緩衝器描述符211-0 BF/BNF 資料流緩衝器 212-0 I I I I I I 緩衝器描述符211-Z BF/BNF 資料流緩衝器 212-Z 應用程式 214 1314685 3/6一匯流排130 DMA 引擎 305 匯济#卜介面 304 描述符 管理器 佇列控制器 分類識別符 306 310 320 收發器 302 記憶體330 Ί | 網路介面 至網路150 140 1314685 4/61314685 5/61314685 6/6
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/929,124 US7602798B2 (en) | 2004-08-27 | 2004-08-27 | Techniques to reduce latency in receive side processing |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200609738A TW200609738A (en) | 2006-03-16 |
| TWI314685B true TWI314685B (en) | 2009-09-11 |
Family
ID=35044923
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW094126577A TWI314685B (en) | 2004-08-27 | 2005-08-04 | Method and apparatus for use in a host system that intercommunicates with a network interface, computer-readable medium comprising instructions stored thereon, and computing system |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US7602798B2 (zh) |
| EP (1) | EP1787440B1 (zh) |
| AT (1) | ATE410007T1 (zh) |
| DE (1) | DE602005010097D1 (zh) |
| TW (1) | TWI314685B (zh) |
| WO (1) | WO2006026024A1 (zh) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100662256B1 (ko) * | 2004-12-20 | 2006-12-28 | 한국전자통신연구원 | 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법 |
| US7792102B2 (en) | 2006-03-31 | 2010-09-07 | Intel Corporation | Scaling egress network traffic |
| US9686117B2 (en) | 2006-07-10 | 2017-06-20 | Solarflare Communications, Inc. | Chimney onload implementation of network protocol stack |
| US9948533B2 (en) * | 2006-07-10 | 2018-04-17 | Solarflare Communitations, Inc. | Interrupt management |
| US7649902B2 (en) * | 2006-11-22 | 2010-01-19 | Sun Microsystems, Inc. | Method and apparatus for performing syntax-directed application layer data buffering |
| US7835391B2 (en) * | 2007-03-07 | 2010-11-16 | Texas Instruments Incorporated | Protocol DMA engine |
| US7813342B2 (en) * | 2007-03-26 | 2010-10-12 | Gadelrab Serag | Method and apparatus for writing network packets into computer memory |
| US20110228674A1 (en) * | 2010-03-18 | 2011-09-22 | Alon Pais | Packet processing optimization |
| US9069489B1 (en) | 2010-03-29 | 2015-06-30 | Marvell Israel (M.I.S.L) Ltd. | Dynamic random access memory front end |
| IL211490A (en) * | 2010-03-02 | 2016-09-29 | Marvell Israel(M I S L ) Ltd | Early next packets of information |
| US8327047B2 (en) * | 2010-03-18 | 2012-12-04 | Marvell World Trade Ltd. | Buffer manager and methods for managing memory |
| US9098203B1 (en) | 2011-03-01 | 2015-08-04 | Marvell Israel (M.I.S.L) Ltd. | Multi-input memory command prioritization |
| US20140282551A1 (en) * | 2013-03-13 | 2014-09-18 | Emulex Design & Manufacturing Corporation | Network virtualization via i/o interface |
| US9621633B2 (en) * | 2013-03-15 | 2017-04-11 | Intel Corporation | Flow director-based low latency networking |
| US20150019702A1 (en) * | 2013-07-10 | 2015-01-15 | Brocade Communications Systems, Inc. | Flexible flow offload |
| US11681625B2 (en) * | 2018-12-20 | 2023-06-20 | Intel Corporation | Receive buffer management |
| US20230221874A1 (en) * | 2022-01-12 | 2023-07-13 | Vmware, Inc. | Method of efficiently receiving files over a network with a receive file command |
| US20240212432A1 (en) * | 2022-12-22 | 2024-06-27 | Dk Crown Holdings Inc. | Message driven gaming systems and processes |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6434620B1 (en) * | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
| WO1999026377A2 (en) | 1997-11-17 | 1999-05-27 | Mcmz Technology Innovations Llc | A high performance interoperable network communications architecture (inca) |
| US7142540B2 (en) * | 2002-07-18 | 2006-11-28 | Sun Microsystems, Inc. | Method and apparatus for zero-copy receive buffer management |
-
2004
- 2004-08-27 US US10/929,124 patent/US7602798B2/en not_active Expired - Fee Related
-
2005
- 2005-07-29 DE DE602005010097T patent/DE602005010097D1/de not_active Expired - Lifetime
- 2005-07-29 EP EP05777440A patent/EP1787440B1/en not_active Expired - Lifetime
- 2005-07-29 AT AT05777440T patent/ATE410007T1/de not_active IP Right Cessation
- 2005-07-29 WO PCT/US2005/027222 patent/WO2006026024A1/en not_active Ceased
- 2005-08-04 TW TW094126577A patent/TWI314685B/zh not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| WO2006026024A1 (en) | 2006-03-09 |
| US20060045090A1 (en) | 2006-03-02 |
| DE602005010097D1 (de) | 2008-11-13 |
| ATE410007T1 (de) | 2008-10-15 |
| TW200609738A (en) | 2006-03-16 |
| EP1787440A1 (en) | 2007-05-23 |
| US7602798B2 (en) | 2009-10-13 |
| EP1787440B1 (en) | 2008-10-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI314685B (en) | Method and apparatus for use in a host system that intercommunicates with a network interface, computer-readable medium comprising instructions stored thereon, and computing system | |
| JP5902834B2 (ja) | 暗示的なメモリの登録のための明示的なフロー制御 | |
| US9411775B2 (en) | iWARP send with immediate data operations | |
| US11695669B2 (en) | Network interface device | |
| US7817634B2 (en) | Network with a constrained usage model supporting remote direct memory access | |
| CN101304373B (zh) | 一种实现局域网内高效传输大块数据的方法及系统 | |
| US7937447B1 (en) | Communication between computer systems over an input/output (I/O) bus | |
| US8166227B2 (en) | Apparatus for processing peripheral component interconnect express protocol | |
| CN100416534C (zh) | 基于PCI Express的包结合方法、设备和系统 | |
| US20120243550A1 (en) | Techniques to utilize queues for network interface devices | |
| CN103229145B (zh) | 用于电信网络应用的无锁缓冲器管理方案 | |
| CN101882126B (zh) | 多个HT总线到单个PCIe总线的桥接装置及其方法 | |
| US10148795B1 (en) | TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies | |
| CN118295956B (zh) | 一种裸片对裸片传输中的控制方法、裸片及系统 | |
| US20200192842A1 (en) | Memory request chaining on bus | |
| CN100579125C (zh) | 一种pci以太网媒体访问控制器传输数据的方法 | |
| CN111936982A (zh) | 主机系统和集成电路加速系统之间有效而可靠的消息通道 | |
| US20050249228A1 (en) | Techniques for providing scalable receive queues | |
| CN116414758A (zh) | 面向高速可扩展互联裸芯与PCIe主设备的并行式转换接口 | |
| CN113422792B (zh) | 数据传输方法、装置、电子设备及计算机存储介质 | |
| US8904062B2 (en) | Network control model driver | |
| US20240028550A1 (en) | Lan pcie bandwidth optimization | |
| US7844753B2 (en) | Techniques to process integrity validation values of received network protocol units | |
| JP2000341333A (ja) | ネットワークパケット送受信方法およびネットワークアダプタ | |
| CN106549846A (zh) | 一种基于nbt硬件的通信方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |