TWI408934B - 網路介面技術 - Google Patents
網路介面技術 Download PDFInfo
- Publication number
- TWI408934B TWI408934B TW096137538A TW96137538A TWI408934B TW I408934 B TWI408934 B TW I408934B TW 096137538 A TW096137538 A TW 096137538A TW 96137538 A TW96137538 A TW 96137538A TW I408934 B TWI408934 B TW I408934B
- Authority
- TW
- Taiwan
- Prior art keywords
- network
- descriptor
- interrupt
- network protocol
- core
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/321—Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/325—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer [OSI layer 3], e.g. X.25
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
- Bus Control (AREA)
Description
此處揭示之主題係關於實作一網路介面之技術。
使用於通訊系統中之協定是持續地逐步發展中。網路介面具有發送信號至一網路以及自網路接收信號之能力。需要提供具有可被修改以至少支援發展中之協定的彈性之一網路介面。
依據本發明之一實施例,係特地提出一種裝置,其包含:至少一個網路介面;至少一個目標核心;通訊式地耦合到至少一個網路介面之一個中央核心,其中該中央核心是用以響應於來自該網路介面之一中斷而選擇性地發出一處理器間中斷(IPI)至一個或多個目標核心;以及通訊式地耦合至該中央核心和至少一個網路介面之一記憶體裝置。
本發明實施例經由非限制性之範例被展示,在圖形中相同之參考號碼係指示於相似元件。
第1圖展示依據本發明一些實施例之一系統實施範例。
第2和3圖展示可被使用於本發明一些實施例中以至少提供在一網路介面以及一個或多個目標核心之間的通訊之範例元件。
第4圖展示可被使用於本發明一些實施例中之範例元件。
第5圖展示可被使用於本發明一些實施例中以利用多數個目標核心支援網路協定單元之處理的範例元件。
第6圖展示可被使用於本發明一些實施例中之一處理範例。
這全部之說明中,“一實施例”或“一個實施例”意謂著配合實施例所述之一特定特點、結構、或特性被包含在本發明至少一實施例中。因此,在這說明各處出現之詞組“在一個實施例中”或“一個實施例”不必然是相關於相同之實施例。更進一步地,該等特定特點、結構、或特性可被組合於一個或多個實施例中。
網路介面裝置發展中之需求可能需要具有網路介面裝置之規劃性能或可以取代該裝置之滿足該需求的另一裝置。新的性能可以軟體被製作,但是在某些情況中,最好是能夠使裝置驅動器改變最小化,例如,留下驅動器或虛擬化。目前競爭壓力包含增加協定-特定最佳化至高速網路介面上,例如,傳輸控制協定(TCP)檔頭/酬載切割以及傳輸控制協定區段卸載。該等最佳化一般具有網路介面熟悉封包檔頭格式以及尺度。最通常之協定檔頭的認識一般是硬接線在網路介面之中,並且僅有一有限數目之協定可被保留在任何一種產品上。對於網路介面可能需要至少能夠充分彈性地修改以支援發展中之協定而使裝置驅動器之改變最小化。
第1圖展示在電腦系統100中,本發明一些實施例可以被使用的一適當系統。電腦系統100可包含主機系統102、匯流排116、以及網路構件118。
主機系統102可包含晶片組105、處理器110-0至110-N、主機記憶體112、以及儲存部114。晶片組105可提供在處理器110-0至110-N、主機記憶體112、儲存部114、匯流排116、以及可被使用於顯示在一顯示裝置上之圖示和資訊(兩者皆未被展示)之發送的一圖形轉化器之間的相互通訊。例如,晶片組105可包含能夠提供與儲存部114相互通訊之一儲存部轉化器(未被展示)。例如,該儲存部轉化器能夠至少遵循下面的任何協定而與儲存部114通訊:小型電腦系統介面(SCSI)、光纖通道(FC)、及/或串列進階技術附加裝置(S-ATA)。
在一些實施例中,晶片組105可包含能夠進行在主機系統102之內或在主機系統102和網路構件118之間的資訊轉移之資料移動器邏輯(未被展示)。如此處所使用的,一“資料移動器”指示一模組,其將資料自一來源移動至一目的地而不必使用一主機處理器之核心處理模組,例如,任何的處理器110-0至110-N,或不使用一處理器之週期以進行資料複製或移動操作。藉由使用資料轉移之資料移動器,該處理器可免於進行資料移動之經常性消耗,其可能導致主機處理器以更緩慢之速率運轉。一資料移動器可包含,例如,一直接記憶體存取(DMA)引擎。在一些實施例中,資料移動器可被製作為任何處理器110-0至110-N之部份,雖然電腦系統100的其他構件可包含該資料移動器。在一些實施例中,資料移動器可以被製作為晶片組105之部份。
任何的處理器110-0至110-N可被製作為複合式指令集電腦(CISC)或減化指令集電腦(RISC)處理器、一硬體執行緒、或任何其他微處理機或中央處理單元。主機記憶體112可被製作為一依電性記憶體裝置,例如,但是不受限制於,一隨機存取記憶體(RAM)、動態隨機存取記憶體(DRAM)、或靜態RAM(SRAM)。儲存部114可被製作為一非依電性儲存裝置,例如,但是不受限制於,一磁碟驅動器、光碟驅動器、卡帶驅動器、一內部儲存裝置、一附加儲存裝置、快閃記憶體、電池備用同步DRAM(SDRAM)、及/或一網路可存取儲存裝置。
匯流排116可提供在至少主機系統102和網路構件118以及其他週邊裝置(未被展示)之間的相互通訊。匯流排116可支援並列的或平行的通訊。匯流排116可支援節點-至-節點或節點-至-多節點之通訊。匯流排116至少可以相容於上述之週邊構件互連(PCI),例如,可由美國奧勒崗州波特蘭市,PCI特定相關團體供應之2004年2月2日3.0修訂版之週邊構件互連(PCI)區域性匯流排規格,(以及其修訂版);於PCI特定相關團體之PCI專定基本規格中的修訂版1.0a被說明之PCI Express,(以及其修訂版);可由前述美國奧勒崗州波特蘭市之PCI特定相關團體供應,2005年3月28日之PCI-X規格修訂版1.1中被說明之PCI-x(以及其修訂版);及/或通用系列匯流排(USB)(與其相關標準)以及其他互連標準。
網路構件118能夠遵循至少任何可應用的協定而提供在主機系統102和網路120之間的相互通訊。網路構件118可使用匯流排116與主機系統102相互通訊。在一實施例中,網路構件118可被整合於晶片組105。“網路構件”可包含在可處理一個或多個將在網路之上被發送及/或被接收之封包的一I/O(輸入/輸出)子系統上之數位及/或類似硬體及/或軟體的任何組合。在一實施例中,該I/O子系統可包含,例如,一網路構件卡(NIC),並且網路構件可包含,例如,在對於網路協定之開放系統互連(OSI)模式中被定義之資料鏈路層的一MAC(媒體接取控制)層。該OSI模式藉由國際標準化機構(ISO)被定義,該機構設置在瑞士之1 rue de Varemb,Case postale 56 CH-1211 Geneva 20。
網路120可以是任何網路,例如,網際網路、企業內部網路、本地式區域網路(LAN)、儲存區域網路(SAN)、廣域網路(WAN)、或無線網路。網路120可使用乙太網路標準(如上述之IEEE 802.3以及其相關標準)或任何通訊標準與網路構件118交換網路協定單元。如此處所使用的,一“網路協定單元”可包含依據任何協定規格被形成之具有一檔頭以及酬載部份的任何封包或訊框或其他資訊格式。
一些實施例中,提供使用通訊式地被耦合於一網路介面之一般目的核心或硬體執行緒之技術以實作一網路介面。網路介面和一般目的核心或硬體執行緒之組合可顯示於其他核心或硬體執行緒中而如同一單一網路介面。相關於該網路介面之一般目的核心或硬體執行緒可以發出處理器間中斷(IPI)至一個或多個其他目標核心或目標硬體執行緒。該目標核心或目標硬體執行緒可處理該處理器間中斷(IPI)而視其為一裝置中斷。
第2圖展示可被使用於本發明一些實施例中之範例元件。中央核心204可以是一般目的核心,其可有充分彈性以進行在一輸入/輸出訊流上之多種任務。在一些實施例中,中央核心204可以是一般目的核心及/或一硬體執行緒。一個一般目的核心可以是包含實體執行單元的一個單一集合之一分別處理封包。一核心可以與更多的核心(例如,在一雙核心或多核心環境中)共用一個晶片。一般目的核心之使用可允許網路介面206性能至少使用軟體被修改。在一些實施例中,多數個網路介面可以通訊式地被耦合至一個或多個中央核心。多數個網路介面可如同一個單一邏輯網路介面地顯示至其他邏輯。一硬體執行緒(同時也是習知如同一邏輯核心)可以是一實體核心之執行單元集合的邏輯範例。一操作系統將一硬體執行緒視為一實體的核心。各硬體執行緒可在每一次執行(軟體執行緒)時處理一個單一執行緒。多數個硬體執行緒因此允許多數個軟體執行緒以重疊形式而共用一個實體的核心。為允許這共用,該核心可以複製各個執行緒之單獨狀態,其包含暫存器集合、程式計數器、以及頁列表。
在一些實施例中,雖然不是任何實施例之一個必須的特點,使用一個一般目的核心或硬體執行緒可延伸該網路介面之性能以形成一新的邏輯裝置。在一些實施例中,雖然不是任何實施例之一個必須的特點,該等目標核心可以將這邏輯裝置視為硬體,因為該等目標核心可能無法在處理器間中斷和裝置中斷之間做識別。
在一些實施例中,中央核心204可以使用一個PCI、PCI-X、或PCI特定遵循匯流排而通訊式地被耦合於網路介面206,雖然其他技術亦可被使用。網路介面206可至少使用中斷、訊息信號中斷、或詢問而與中央核心204通訊。
在一些實施例中,中央核心204可以進行下列任務,例如,但是不受限制於:反應於自網路介面206之一個中斷的接收而執行一中斷服務常式;讀取來自主要的描述符環之描述符;執行可將進入的網路協定單元修改或分類之任何使用者提供數碼;進行任何使用者-指定網路-相關操作;依據一被指定之使用者分類而分派一目標核心以及其之次要描述符環;自該主要的描述符環複製一描述符至適當的次要描述符環;及/或將描述符自該主要的描述符環中移除。主要的以及次要的描述符環可被使用以利用一個或多個目標核心而管理被接收之網路協定單元的處理。
在一些實施例中,網路介面206可進行下列任務,例如,但是不受限制於:自一實體鏈路接收網路協定單元;經由資料移動器之一個轉移以複製被接收之網路協定單元的部份而進入主機記憶體中;及/或提出一中斷至中央核心204。
反應於網路介面206接收一網路協定單元,網路介面206可提供一中斷至中央核心204。但是,自網路介面206至中央核心204之中斷可由於其他理由被提供。在一些實施例中,反應於該中斷,中央核心204可使用一處理器間中斷(IPI)以提供一中斷至一目標核心(或硬體執行緒)以要求該被接收之網路協定單元部份的處理。利用中央核心204被執行之一操作系統(OS)可被規劃以使用一個或多個處理器間中斷而中斷核心或硬體執行緒之任何組合。接收該處理器間中斷之核心或執行緒可將該處理器間中斷視為一裝置中斷,例如,藉由喚出一中斷操作裝置。該目標核心(或執行緒)可依據關於I/O運載量之決定而選擇終止、改向、或組合中斷。
一個或多個目標核心可進行通常利用中央核心被進行之協定處理任務,其包含,但是,不受限制於下列之事項:(1)資料鏈路、網路、以及傳輸層協定處理,包含,但是不受限制於下列之事項:(a)決定那些協定被該網路協定單元所使用,(b)決定該網路協定單元是否恰當地遵循協定規格,(c)追蹤網路傳輸狀態(例如,更新TCP序列數目),(d)發送答覆至網路協定單元之一發送器(例如,傳送TCP認可),及/或(e)配置被包含在網路協定單元中之資料(例如,重組在TCP封包中之資料);(2)排程等候來自網路之資料的一個應用程式之操作,(3)安排路由供傳送網路協定單元至另一位置;(4)過濾非所要的網路協定單元,及/或(5)一旦處理完成時,則開放其他者使用儲存該網路協定單元之記憶體。
在一些實施例中,使用IPI以作用如同裝置中斷而使中央核心204處於自由狀態以對網路介面206實作新的功能而減少目標核心之裝置驅動器的中斷服務常式中之改變。因為裝置驅動器一般被裝備以使用ISR,其可以是更方便於使用IPI以模擬ISR。對裝置驅動器之中斷服務常式之改變(例如,再編碼動作)可被減少,至少因為其已無縫地被修改以服務處理器間中斷以及裝置中斷。
在一些實施例中,中央核心204和網路介面206之組合允許網路介面資源供應至系統資源並且反之亦然。例如,目標核心可藉由存取被該組合所使用之主機記憶體而充分存取網路介面資源。不僅僅是中央核心204和網路介面206之組合可允許對網路介面資源之完全存取,同時也可能允許具有可伸展性(上至系統和平臺所加之限制,並且不受任何網路介面206實作之限制)。可伸展性可以是增加新的特點至具有現有數碼的最小分裂或改變之一現有的程式之能力。例如,藉由僅複製描述符至目標核心並且不複製酬載至目標核心,則可伸展性可被達成。一現成的網路介面206實作可顯示至其他的構件而如一完全地可規劃、資源豐富之網路介面。
第3圖展示可被使用於本發明一些實施例中之範例元件,其至少提供在一網路介面以及一目標核心(或硬體執行緒)之間的通訊。一個或多個網路介面可產生中斷至下方之驅動器介面(I/F)。該下方驅動器介面接受來自一個或多個網路介面之中斷並且提供至少描述在主要記憶體中儲存被接收之網路協定單元的位置之一描述符。使用者-添加功能(UAF)級302接收來自下方驅動器介面之描述符。UAF 302可決定那個目標核心(或目標硬體執行緒)將接收一處理器間中斷以及那個次要描述符環是接收相關於該被接收之網路協定單元的一描述符。UAF 302可引導進入的網路訊流至待處理之適當的核心或硬體執行緒。處理器間中斷邏輯304可依據來自UAF 302之決定對適當的硬體執行緒或目標核心產生一處理器間中斷。例如,UAF 302可決定那個次要環以及相關的目標核心將接收各描述符,並且處理器間中斷邏輯304可要求將各個描述符複製至適當的次要環。在一些實施例中,使用UAF 302允許在較高層中之性能將較佳地被最佳化。因此,處理器間中斷至正確目標核心之智慧型方向可以被達成。通訊式地被耦合至網路介面之一個一般目的核心(例如,但是不受限制於,中央核心204)可以執行任何下方之驅動器介面、UAF 302、以及處理器間中斷邏輯304。
一個目標核心或硬體執行緒可執行模擬網路介面ISR 306。模擬網路介面ISR 306可反應於來自相關於一個或多個網路介面的一中央核心或執行緒之一處理器間中斷的接收而操作。例如,模擬網路介面ISR 306可將來自一中央核心之處理器間中斷視為一中斷要求。例如,模擬網路介面ISR 306可將任何IPI視為一中斷要求。對於所有裝置的中斷要求可被映射至中斷向量。各個向量可被指定至呼叫一中斷服務常式(ISR)以處理該中斷要求之一個功能。
在一些實施例中,為允許裝置驅動器之ISR處理來自另一核心之IPI,一裝置中斷要求可以被指定以辨識該邏輯裝置,並且一ISR可利用該裝置驅動器而動態地被指定給這中斷要求。因此,至少二種型式之中斷以及它們分別的ISR可以是功能地等效於該原始裝置中斷以及其之ISR,但是該處理器間中斷接著可作用如同一代理器以取代該原始裝置中斷而觸發資料處理。
例如,模擬網路介面ISR 306可以反應於來自相關於一個或多個網路介面之一中央核心或執行緒的處理器間中斷之接收而進行一中斷服務常式以處理一描述符。處理器間中斷邏輯304可要求將描述符複製進入次要環中。但是,其他操作亦可以反應於一處理器間中斷之接收而被進行。模擬網路介面ISR 306可處理該描述符而如同該描述符是來自一網路介面。模擬網路介面ISR 306可提供描述符以及資料至上方驅動器介面(I/F)。該上方驅動器介面可以相同方式處理該描述符而如同該描述符是直接地來自該網路介面。上方驅動器介面可以是對於一虛擬機器移動(VMM)邏輯或一操作系統(OS)、或其他邏輯的一個介面。目標核心或執行緒可執行一個或多個應用程式(被展示如“App”者)。例如,一應用程式可採用在一個或多個網路協定單元中被接收之資料。
第4圖展示可被使用於本發明一些實施例中以管理被接收之網路協定單元的處理之範例元件。一次要描述符環可被各目標核心(或硬體執行緒)所使用,其可接收來自相關於該網路介面之中央核心(或硬體執行緒)的一處理器間中斷。藉由相關於該網路介面之中央核心(或硬體執行緒)被執行的邏輯運算可存在於具有共用主要描述符環的一個或多個描述符之次要描述符環中。該次要描述符環可儲存將利用相關之目標核心被處理之描述符。
相關於各個目標核心(或硬體執行緒)之記憶體可儲存一相關之次要描述符環。相關於該網路介面之一中央核心(或硬體執行緒)可管理進入次要描述符環中之描述符的儲存。來自接收網路協定單元之資料可被儲存在可存取該網路介面之主要記憶體中。該目標核心可自相關於該網路介面之中央核心接收一處理器間中斷,並且反應地,自一相關的次要描述符環中讀取一指定之描述符。依據該相關之次要描述符環中的描述符,該目標核心可將資料複製至相關於該目標核心之記憶體並且存取此資料。
第5圖展示一元件範例,其可被使用於本發明一些實施例中以利用多數個核心或硬體執行緒支援接收網路協定單元之處理。利用一網路介面被接收之訊流可被分配以供利用一個或多個目標核心或硬體執行緒之處理。為分配一接收網路協定單元以待利用一目標核心之處理,一部份接收網路協定單元可被儲存在相關於該目標核心之一記憶體佇列(或區域)中。相關於該網路介面之中央核心(或硬體執行緒)可決定如何將接收網路協定單元分配在該記憶體佇列之間以分配在目標核心之間接收網路協定單元之處理。例如,接收端縮放調整技術可以被使用以將待處理之網路協定單元分派在目標核心之間。接收端縮放調整技術係說明於,例如,來自微軟公司之網路驅動器介面規格(NDIS)6.0(2005)。
第6圖展示可被使用於本發明一些實施例中之一範例處理程序。在區塊610,一網路介面可接收一網路協定單元。
在區塊620中,網路介面可發出一裝置中斷至一個一般目的核心以通知該核心有關於至少一個網路協定單元之接收。
在區塊630中,該一般目的核心可決定那一個目標核心將處理該被接收之網路協定單元。例如,可部分地使用接收端縮放調整技術以做決定,雖然其他技術亦可以被使用。為分派一被接收之網路協定單元至一目標核心,相關於該被接收網路協定單元的一描述符可被指定至相關於該目標核心之一次要描述符環。將利用該目標核心被處理之該網路協定單元的部份可被儲存在相關於一般目的核心之一記憶體區域中。
在區塊640中,該一般目的核心可發出一處理器間中斷至一目標核心以指示一被接收之網路協定單元的可利用性。反應於該處理器間中斷,被執行或可供應至該目標核心之邏輯可喚出一中斷操作裝置。
在區塊650中,該目標核心可要求將該網路協定單元之部份自相關於該一般目的核心之記憶體區域複製至相關於該目標核心之一記憶體。在相關於該目標核心之次要描述符環中之一描述符可辨識該網路協定單元部份之儲存位置。
本發明實施例可被實作如下列之任何一者或其組合:使用一主機板被互連之一個或多個微晶片或積體電路、硬接線邏輯、利用一記憶體裝置被儲存且利用一微處理機被執行之軟體、韌體、特定應用積體電路(ASIC)、及/或可現場規劃之閘陣列(FPGA)。“邏輯”一詞可包含,作為範例,軟體或硬體及/或軟體和硬體之組合。
本發明實施例可以被提供,例如,作為一電腦程式產品,其可包含一個或多個具有被儲存在其上之機器可執行指令的機器可讀取媒體,當利用一個或多個機器(例如,電腦、電腦網路、或其他電子裝置)被執行時,可依據本發明實施例導致一個或多個機器執行其操作。一機器可讀取媒體可包含,但是不受限制於,軟碟、光碟、CD-ROM(小型光碟唯讀記憶體)、以及磁式光碟、ROM(唯讀記憶體)、RAM(隨機存取記憶體)、EPROM(可清除式可規劃唯讀記憶體)、EEPROM(電氣可清除式可規劃唯讀記憶體)、磁式或光學卡、快閃記憶體、或適用於儲存機器可執行指令的其他型式之媒體/機器可讀取媒體。
此外,本發明實施例同時也可作為一個電腦程式產品被下載,其中該程式可經由一通訊鏈路(例如,一數據機及/或網路連接)藉由在一載波或其他傳輸媒體中被實施及/或被調變的一個或多個資料信號而自一遠處電腦(例如,一伺服器)被轉移至一所要求之電腦(例如,一客戶)。因此,如此處所使用的,一機器可讀取媒體可以,但不是必需,包含此一載波。
圖形和先前之說明給予本發明範例。雖然被展示如一些不同的功能項目,熟習本技術者應明白,一個或多個此類元件可良好地被組合成為單一個功能元件。另外地,某些元件可以被分割成為多數個功能元件。來自一實施例之元件可被添加至另一實施例中。例如,此處說明之處理順序可以被改變並且是不受限制於此處說明之方式。此外,任何流程圖之動作不必需以所展示之順序被實作;亦非所有的動作必需被進行。同時,不需依賴其他動作的那些動作也可與其他動作平行地被進行。但是,本發明之範疇是不受限制於這些特定範例。本發明是可有許多的變化,不論是否在說明中明確地給予,例如,在結構、尺度、以及材料使用上之差異。本發明之範疇至少是如下面所給予的申請專利範圍一般地廣泛。
100...電腦系統
102...主機系統
105...晶片組
110...處理器
112...主機記憶體
114...儲存部
116...匯流排
118...網路構件
120...網路
204...中央核心
206...網路介面
302...使用者添加功能
304...處理器間中斷邏輯
306...模擬網路介面ISR
610~650...網路介面處理步驟
第1圖展示依據本發明一些實施例之一系統實施範例。
第2和3圖展示可被使用於本發明一些實施例中以至少提供在一網路介面以及一個或多個目標核心之間的通訊之範例元件。
第4圖展示可被使用於本發明一些實施例中之範例元件。
第5圖展示可被使用於本發明一些實施例中以利用多數個目標核心支援網路協定單元之處理的範例元件。
第6圖展示可被使用於本發明一些實施例中之一處理範例。
204...中央核心
206...網路介面
Claims (21)
- 一種用於實施網路介面的設備,其包含:至少一個網路介面,用以接收一或多個網路協定單元;至少一個目標核心;一中央核心,其通訊式地耦合到該至少一個網路介面,其中該中央核心會響應於來自該網路介面的一中斷而選擇性地發出一處理器間中斷(IPI)至一或多個目標核心,並且其中該中斷指出所接收之至少一個網路協定單元的可利用性以作處理;一記憶體裝置,其通訊式地耦合至該中央核心和該至少一個網路介面;與該至少一個網路介面相關聯的一主要描述符環;用於提供該主要描述符環中的一描述符以指出要處理的一或多個網路協定單元之邏輯組件,其中該一或多個網路協定單元的一部份係儲存在該記憶體裝置中;與該至少一個目標核心中之各者相關聯的至少一個次要描述符環,用於響應於來自該網路介面之該中斷而選擇性地分配一目標核心來處理所接收到的該一或多個網路協定單元之邏輯組件;以及用於將一描述符從該主要描述符環複製到與所分配之該目標核心相關聯的一次要描述符環之邏輯組件,其中該至少一個次要描述符環係用於儲存所複製的 該描述符但不儲存所接收到的與所複製之該描述符相關聯的該網路協定單元。
- 如申請專利範圍第1項之設備,其中至少一個目標核心會使用邏輯組件來響應於接收到該IPI而選擇性地進行一中斷服務常式,其中該中斷服務常式將該IPI視為一裝置中斷。
- 如申請專利範圍第1項之設備,其中至少一個網路介面能夠進行選自於由下列操作所構成之組群的至少一個操作:接收來自一實體鏈路的數個網路協定單元、將所接收到的數個網路協定單元之數個部份複製到該記憶體裝置中、以及對該中央核心提出一中斷。
- 如申請專利範圍第1項之設備,其中該中央核心能夠進行從選自於由下列操作所構成之組群的至少一個操作:響應於接收到來自該至少一個網路介面的一中斷而執行一中斷服務常式、讀取來自該主要描述符環的數個描述符、執行任何使用者提供碼來修改數個進入網路協定單元、執行任何使用者提供碼來將數個進入網路協定單元分類、依據一使用者指定分類而將一目標核心和一描述符分派給其次要描述符環、將來自該主要描述符環的一描述符複製至適當的該次要描述符環、以及自該主要描述符環移除該描述符。
- 如申請專利範圍第1項之設備,其中:該記憶體裝置供用於儲存所接收之一網路協定單元的一酬載;並且 所分配之該至少一個目標核心會響應於一次要描述符環中的一描述符而將該酬載自該記憶體裝置複製至一記憶體,其中該次要描述符環係與要求處理所接收之該網路協定單元的所分配之該至少一個目標核心相關聯,並且該記憶體係與所分配之該至少一個目標核心相關聯。
- 如申請專利範圍第1項之設備,其中用於選擇性地分配之該邏輯組件係用於應用接收端縮放調整技術。
- 如申請專利範圍第1項之設備,其中至少一個目標核心能夠進行選自於由下列操作所構成之組群的至少一個操作:資料鏈路協定處理、網路層協定處理、傳輸層協定處理、對於正等候來自該網路之資料的一應用程式之排程操作、對數個網路協定單元安排路由以傳送至另一位置、過濾非所要之網路協定單元、以及釋放儲存該等網路協定單元的該記憶體區域以做其他使用。
- 如申請專利範圍第1項之設備,其中通訊式地耦合到至少一個網路介面的該中央核心對一或多個目標核心而言係以一單一邏輯裝置顯現。
- 一種用於處理網路協定單元的方法,其包含下列步驟:接收一網路協定單元;發出一裝置中斷至一中央核心,以向該中央核心通知對該網路協定單元之接收;選擇一目標核心來處理所接收到的該網路協定單元; 將所接收到的該網路協定單元儲存到與該中央核心相關聯的一主要記憶體中;在一主要描述符環中提供一描述符,該描述符可識別所接收到的該網路協定單元;將該描述符複製到與所選擇之該目標核心相關聯的一次要環,其中該次要環係用於儲存所複製的該描述符但不儲存所接收到的與所複製之該描述符相關聯的該網路協定單元;以及響應於選擇該目標核心來處理所接收到的該網路協定單元,對所選擇之該目標核心選擇性地發出一處理器間中斷以要求處理所接收到的該網路協定單元。
- 如申請專利範圍第9項之方法,其中選擇一目標核心之步驟包含:使用接收端縮放調整技術。
- 如申請專利範圍第9項之方法,其進一步包含下列步驟:所選擇之該目標核心處理來自於該次要環的該描述符;以及所選擇之該目標核心要求將一部份的該網路協定單元複製到與所選擇之該目標核心相關聯的一記憶體中。
- 如申請專利範圍第9項之方法,其中該中央核心能夠進行選自於由下列操作所構成之組群的至少一個操作:響應於接收到來自該至少一個網路介面的一中斷而執行一中斷服務常式、讀取來自該主要描述符環的數個描述符、執行任何使用者提供碼來修改數個進入網路協定單 元、執行任何使用者提供碼來將數個進入網路協定單元分類、依據一使用者指定分類而將一目標核心和一描述符分派至其次要描述符環、將一描述符從該主要描述符環複製到適當的該次要描述符環、以及自該主要描述符環移除該描述符。
- 如申請專利範圍第9項之方法,其中該目標核心能夠進行選自於由下列操作所構成之組群的至少一個操作:資料鏈路協定處理、網路層協定處理、傳輸層協定處理、對正等候來自該網路之資料的一應用程式之排程操作、對數個網路協定單元安排路由以傳送至另一位置、過濾非所要的網路協定單元、以及釋放儲存該等網路協定單元的記憶體以做其他使用。
- 如申請專利範圍第9項之方法,其中所選擇之該目標核心會響應於接收到該處理器間中斷而選擇性地進行一中斷服務常式,其中該中斷服務常式將該處理器間中斷視為一裝置中斷。
- 一種用於實施網路介面的系統,其包含:至少一個網路介面,其利用至少一個天線而通訊式地耦合至一無線網路,該至少一個網路介面係用於從該無線網路接收一或多個網路協定單元;至少一個目標核心;一中央核心,其通訊式地耦合到該至少一個網路介面,其中該中央核心會響應於來自該至少一個網路介面的一中斷而選擇性地發出一處理器間中斷(IPI)至一或 多個目標核心,其中來自該至少一個網路介面的該中斷指出至少一個網路協定單元的可利用性以作處理;一記憶體裝置,其通訊式地耦合至該中央核心和該至少一個網路介面;與該至少一個網路介面相關聯的一主要描述符環;用於提供該主要描述符環中的一描述符以指出要處理的一或多個網路協定單元之邏輯組件,其中該一或多個網路協定單元的一部份係儲存在該記憶體裝置中;與該至少一個目標核心中之各者相關聯的至少一個次要描述符環,用於響應於來自該網路介面之該中斷而選擇性地分配一目標核心來處理所接收到的該一或多個網路協定單元之邏輯組件;以及用於將一描述符從該主要描述符環複製到與所分配之該目標核心相關聯的一次要描述符環之邏輯組件,其中該次要描述符環係用於儲存所複製的該描述符但不儲存所接收到的與所複製之該描述符相關聯的該網路協定單元。
- 如申請專利範圍第15項之系統,其中:該記憶體裝置供用於儲存所接收之一網路協定單元的一酬載,並且所分配之該至少一個目標核心會響應於一次要描述符環中的一描述符而將該酬載自該記憶體裝置複製至一記憶體,其中該次要描述符環係與要求處理所接收 之該網路協定單元的所分配之該至少一個目標核心相關聯,並且該記憶體係與所分配之該至少一個目標核心相關聯。
- 如申請專利範圍第16項之系統,其中該記憶體裝置包括與至少一個目標核心相關聯的一緩衝器,並且其中各個緩衝器供用於儲存要由一相關聯目標核心處理的數個網路協定單元之數個部份。
- 如申請專利範圍第15項之系統,其中至少一個網路介面能夠進行選自於由下列操作所構成之組群的至少一個操作:接收來自一實體鏈路的數個網路協定單元、將所接收到的數個網路協定單元之數個部份複製到該記憶體裝置中、以及對該中央核心提出一中斷。
- 如申請專利範圍第15項之系統,其中該中央核心能夠進行從選自於由下列操作所構成之組群的至少一個操作:響應於接收到來自該至少一個網路介面的一中斷而執行一中斷服務常式、讀取來自該主要描述符環的數個描述符、執行任何使用者提供碼來修改數個進入網路協定單元、執行任何使用者提供碼來將數個進入網路協定單元分類、依據一使用者指定分類而將一目標核心和一描述符分派給其次要描述符環、將來自該主要描述符環的一描述符複製至適當的該次要描述符環、以及自該主要描述符環移除該描述符。
- 如申請專利範圍第15項之系統,其中至少一個目標核心能夠進行選自於由下列操作所構成之組群的至少一個 操作:資料鏈路協定處理、網路層協定處理、傳輸層協定處理、對於正等候來自該網路之資料的一應用程式之排程操作、對數個網路協定單元安排路由以傳送至另一位置、過濾非所要之網路協定單元、以及釋放儲存該等網路協定單元的該記憶體區域以做其他使用。
- 如申請專利範圍第15項之系統,其中至少一個目標核心會使用邏輯組件來響應於接收到該IPI而選擇性地進行一中斷服務常式,其中該中斷服務常式將該IPI視為一裝置中斷。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/539,510 US20080086575A1 (en) | 2006-10-06 | 2006-10-06 | Network interface techniques |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200826594A TW200826594A (en) | 2008-06-16 |
TWI408934B true TWI408934B (zh) | 2013-09-11 |
Family
ID=39275836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096137538A TWI408934B (zh) | 2006-10-06 | 2007-10-05 | 網路介面技術 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080086575A1 (zh) |
EP (1) | EP2080102A4 (zh) |
CN (1) | CN101159765B (zh) |
TW (1) | TWI408934B (zh) |
WO (1) | WO2008045809A2 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296490B2 (en) * | 2007-06-29 | 2012-10-23 | Intel Corporation | Method and apparatus for improving the efficiency of interrupt delivery at runtime in a network system |
US20100146112A1 (en) * | 2008-12-04 | 2010-06-10 | Real Dice Inc. | Efficient communication techniques |
US8493979B2 (en) * | 2008-12-30 | 2013-07-23 | Intel Corporation | Single instruction processing of network packets |
US7996548B2 (en) | 2008-12-30 | 2011-08-09 | Intel Corporation | Message communication techniques |
US8645596B2 (en) | 2008-12-30 | 2014-02-04 | Intel Corporation | Interrupt techniques |
US8239699B2 (en) * | 2009-06-26 | 2012-08-07 | Intel Corporation | Method and apparatus for performing energy-efficient network packet processing in a multi processor core system |
CN102055737B (zh) * | 2009-11-04 | 2013-09-11 | 中兴通讯股份有限公司 | 一种远程登陆多核系统硬件线程的方法、装置及系统 |
US8321615B2 (en) * | 2009-12-18 | 2012-11-27 | Intel Corporation | Source core interrupt steering |
WO2012154596A1 (en) * | 2011-05-06 | 2012-11-15 | Xcelemor, Inc. | Computing system with data and control planes and method of operation thereof |
CN102209042B (zh) * | 2011-07-21 | 2014-04-16 | 迈普通信技术股份有限公司 | 一种避免先入先出队列溢出的方法及设备 |
US8842562B2 (en) * | 2011-10-25 | 2014-09-23 | Dell Products, Lp | Method of handling network traffic through optimization of receive side scaling |
CN109791503A (zh) * | 2018-03-07 | 2019-05-21 | 华为技术有限公司 | 处理中断的方法和装置 |
KR102456176B1 (ko) | 2020-05-21 | 2022-10-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11573891B2 (en) * | 2019-11-25 | 2023-02-07 | SK Hynix Inc. | Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device |
CN114003363B (zh) * | 2021-11-01 | 2022-07-22 | 支付宝(杭州)信息技术有限公司 | 线程间中断信号发送方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758169A (en) * | 1990-12-21 | 1998-05-26 | Intel Corporation | Protocol for interrupt bus arbitration in a multi-processor system |
US6070188A (en) * | 1995-12-28 | 2000-05-30 | Nokia Telecommunications Oy | Telecommunications network management system |
US6148361A (en) * | 1998-12-17 | 2000-11-14 | International Business Machines Corporation | Interrupt architecture for a non-uniform memory access (NUMA) data processing system |
US6467007B1 (en) * | 1999-05-19 | 2002-10-15 | International Business Machines Corporation | Processor reset generated via memory access interrupt |
US20040107416A1 (en) * | 2002-12-02 | 2004-06-03 | Microsoft Corporation | Patching of in-use functions on a running computer system |
US20060195698A1 (en) * | 2005-02-25 | 2006-08-31 | Microsoft Corporation | Receive side scaling with cryptographically secure hashing |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4365294A (en) * | 1980-04-10 | 1982-12-21 | Nizdorf Computer Corporation | Modular terminal system using a common bus |
US7620955B1 (en) * | 2001-06-08 | 2009-11-17 | Vmware, Inc. | High-performance virtual machine networking |
US7219121B2 (en) * | 2002-03-29 | 2007-05-15 | Microsoft Corporation | Symmetrical multiprocessing in multiprocessor systems |
US8984199B2 (en) * | 2003-07-31 | 2015-03-17 | Intel Corporation | Inter-processor interrupts |
US7162666B2 (en) * | 2004-03-26 | 2007-01-09 | Emc Corporation | Multi-processor system having a watchdog for interrupting the multiple processors and deferring preemption until release of spinlocks |
US7783769B2 (en) * | 2004-03-31 | 2010-08-24 | Intel Corporation | Accelerated TCP (Transport Control Protocol) stack processing |
US7764709B2 (en) * | 2004-07-07 | 2010-07-27 | Tran Hieu T | Prioritization of network traffic |
US7564847B2 (en) * | 2004-12-13 | 2009-07-21 | Intel Corporation | Flow assignment |
US7548513B2 (en) * | 2005-02-17 | 2009-06-16 | Intel Corporation | Techniques to provide recovery receive queues for flooded queues |
US20060227788A1 (en) * | 2005-03-29 | 2006-10-12 | Avigdor Eldar | Managing queues of packets |
US20060236011A1 (en) * | 2005-04-15 | 2006-10-19 | Charles Narad | Ring management |
US7584286B2 (en) * | 2006-06-28 | 2009-09-01 | Intel Corporation | Flexible and extensible receive side scaling |
US20080002724A1 (en) * | 2006-06-30 | 2008-01-03 | Karanvir Grewal | Method and apparatus for multiple generic exclusion offsets for security protocols |
US20090006521A1 (en) * | 2007-06-29 | 2009-01-01 | Veal Bryan E | Adaptive receive side scaling |
US20090086736A1 (en) * | 2007-09-28 | 2009-04-02 | Annie Foong | Notification of out of order packets |
US7836195B2 (en) * | 2008-02-27 | 2010-11-16 | Intel Corporation | Preserving packet order when migrating network flows between cores |
US20100017583A1 (en) * | 2008-07-15 | 2010-01-21 | International Business Machines Corporation | Call Stack Sampling for a Multi-Processor System |
US8151027B2 (en) * | 2009-04-08 | 2012-04-03 | Intel Corporation | System management mode inter-processor interrupt redirection |
-
2006
- 2006-10-06 US US11/539,510 patent/US20080086575A1/en not_active Abandoned
- 2006-12-30 CN CN200610172499XA patent/CN101159765B/zh not_active Expired - Fee Related
-
2007
- 2007-10-05 WO PCT/US2007/080633 patent/WO2008045809A2/en active Application Filing
- 2007-10-05 TW TW096137538A patent/TWI408934B/zh active
- 2007-10-05 EP EP07853826.1A patent/EP2080102A4/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758169A (en) * | 1990-12-21 | 1998-05-26 | Intel Corporation | Protocol for interrupt bus arbitration in a multi-processor system |
US6070188A (en) * | 1995-12-28 | 2000-05-30 | Nokia Telecommunications Oy | Telecommunications network management system |
US6148361A (en) * | 1998-12-17 | 2000-11-14 | International Business Machines Corporation | Interrupt architecture for a non-uniform memory access (NUMA) data processing system |
US6467007B1 (en) * | 1999-05-19 | 2002-10-15 | International Business Machines Corporation | Processor reset generated via memory access interrupt |
US20040107416A1 (en) * | 2002-12-02 | 2004-06-03 | Microsoft Corporation | Patching of in-use functions on a running computer system |
US20060195698A1 (en) * | 2005-02-25 | 2006-08-31 | Microsoft Corporation | Receive side scaling with cryptographically secure hashing |
Also Published As
Publication number | Publication date |
---|---|
WO2008045809A3 (en) | 2008-06-05 |
EP2080102A4 (en) | 2015-01-21 |
TW200826594A (en) | 2008-06-16 |
EP2080102A2 (en) | 2009-07-22 |
CN101159765B (zh) | 2013-12-25 |
CN101159765A (zh) | 2008-04-09 |
US20080086575A1 (en) | 2008-04-10 |
WO2008045809A2 (en) | 2008-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI408934B (zh) | 網路介面技術 | |
US10095645B2 (en) | Presenting multiple endpoints from an enhanced PCI express endpoint device | |
CN107924341B (zh) | 基于平台遥测数据的实时的本地和全局数据中心网络优化 | |
JP5362980B2 (ja) | データ処理システム内で第1のホスト・システムと第2のホスト・システムとの間で通信するための方法、プログラム、およびシステム(ソケット接続および共用メモリを使用するホスト・システム間の通信のためのシステムおよび方法) | |
US9996484B1 (en) | Hardware acceleration for software emulation of PCI express compliant devices | |
US9092269B2 (en) | Offloading virtual machine flows to physical queues | |
US20150052280A1 (en) | Method and system for communications-stack offload to a hardware controller | |
JP7310924B2 (ja) | サーバ内遅延制御装置、サーバ、サーバ内遅延制御方法およびプログラム | |
CN115687234A (zh) | 用于软件定义的互连交换机的架构 | |
US9910687B2 (en) | Data flow affinity for heterogenous virtual machines | |
JP2008152786A (ja) | データ処理システム内で1つまたは複数のエンドポイントの第1の物理機能から第2の物理機能に仮想機能を移行するための方法、プログラム、およびシステム(単一ルート・ステートレス仮想機能の移行のためのシステムおよび方法) | |
WO2002031672A2 (en) | Method and apparatus for interprocessor communication and peripheral sharing | |
JP7251648B2 (ja) | サーバ内遅延制御システム、サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
US11018986B2 (en) | Communication apparatus, communication method, and computer program product | |
WO2014031430A1 (en) | Systems and methods for sharing devices in a virtualization environment | |
WO2019157849A1 (zh) | 一种资源调度的方法、装置、设备及系统 | |
CN114363170A (zh) | 容器服务网络配置方法及相关产品 | |
US9612877B1 (en) | High performance computing in a virtualized environment | |
WO2022160714A1 (zh) | 一种通信方法、装置以及系统 | |
WO2018106392A1 (en) | Technologies for multi-core wireless network data transmission | |
JP7485101B2 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム | |
US11800404B1 (en) | Multi-tenant radio-based application pipeline processing server | |
US20230185624A1 (en) | Adaptive framework to manage workload execution by computing device including one or more accelerators | |
US20240126622A1 (en) | I/o acceleration in a multi-node architecture | |
WO2022195826A1 (ja) | サーバ内遅延制御装置、サーバ内遅延制御方法およびプログラム |