專利名稱:控制器集成的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)接口的新結(jié)構(gòu)和一種用于在數(shù)據(jù)處理 系統(tǒng)的處理器之間交換網(wǎng)絡(luò)數(shù)據(jù)的方法,特別是一種刀片式服務(wù)器。還公開了一種PCIe設(shè) 備的新結(jié)構(gòu)。
背景技術(shù):
包括了一個或更多個處理器和存儲器的傳統(tǒng)數(shù)據(jù)處理系統(tǒng)借助外圍網(wǎng)絡(luò)接口設(shè) 備連接到網(wǎng)絡(luò)上。網(wǎng)絡(luò)接口設(shè)備使數(shù)據(jù)處理系統(tǒng)能夠通過網(wǎng)絡(luò)接收并發(fā)送數(shù)據(jù)。數(shù)據(jù)處理 系統(tǒng)和網(wǎng)絡(luò)接口設(shè)備通過諸如PCIe這樣的外圍數(shù)據(jù)總線通信。以太網(wǎng)網(wǎng)絡(luò)接口設(shè)備包括控制器,該控制器典型地形成通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)分 組,控制通過該設(shè)備的數(shù)據(jù)流,并在數(shù)據(jù)處理系統(tǒng)和網(wǎng)絡(luò)接口設(shè)備之間協(xié)調(diào)數(shù)據(jù)總線上數(shù) 據(jù)的傳輸。網(wǎng)絡(luò)上數(shù)據(jù)的物理傳輸由網(wǎng)絡(luò)接口設(shè)備的所謂“PHY”處理,“PHY”在以太網(wǎng)規(guī) 范的物理層級上進行網(wǎng)絡(luò)上網(wǎng)絡(luò)數(shù)據(jù)的信令(傳輸)(signalling)。在典型的數(shù)據(jù)處理系統(tǒng)中,網(wǎng)絡(luò)上數(shù)據(jù)的發(fā)送或接收涉及多條數(shù)據(jù)總線。通常在 處理器和存儲器之間、本地存儲設(shè)備和諸如網(wǎng)絡(luò)接口設(shè)備這樣的外圍設(shè)備之間有不同的總 線。在每條總線上的數(shù)據(jù)傳輸具有關(guān)聯(lián)的開銷,并且在網(wǎng)絡(luò)上數(shù)據(jù)發(fā)送或接收期間,除了 PHY,各種數(shù)據(jù)總線電路通常是在引起的延遲和功率需求方面最昂貴的組件。并且,在網(wǎng)絡(luò)結(jié)構(gòu)上數(shù)據(jù)分組的傳輸速率本身受到了網(wǎng)絡(luò)帶寬的限制,這限制了 網(wǎng)絡(luò)上的主機之間的最大數(shù)據(jù)速率。如果將網(wǎng)絡(luò)結(jié)構(gòu)用于連接刀片式服務(wù)器的刀片,那么 這可能尤其具有限制性。傳統(tǒng)的網(wǎng)絡(luò)接口設(shè)備被提供為通過諸如PCIe這樣的外圍總線與數(shù)據(jù)處理系統(tǒng)相 連接的外圍設(shè)備。網(wǎng)絡(luò)接口設(shè)備可以是獨立的外圍卡或者它可以由數(shù)據(jù)處理系統(tǒng)的主板來 支承,但該設(shè)備由數(shù)據(jù)處理系統(tǒng)通過適當?shù)目偩€訪問。這種配置如圖1所示,其中數(shù)據(jù)處理 系統(tǒng)101的CPU 103通過PCIe總線106訪問網(wǎng)絡(luò)接口設(shè)備(NIC) 102。在CPU和PCIe總線 之間的接口由芯片集105提供,通常其借助于存儲器控制器提供對存儲器的直接存儲器訪 問(DMA)。網(wǎng)絡(luò)接口設(shè)備102包括控制器107和PHY108,控制器主要處理在網(wǎng)絡(luò)109上使 用的網(wǎng)絡(luò)協(xié)議的鏈路層上的數(shù)據(jù)流,PHY根據(jù)該網(wǎng)絡(luò)協(xié)議的物理層需求來處理網(wǎng)絡(luò)上的網(wǎng) 絡(luò)數(shù)據(jù)分組的發(fā)送和接收。由于在處理器103上執(zhí)行的應(yīng)用的接收和發(fā)送隊列位于存儲器104中,網(wǎng)絡(luò)接口 設(shè)備為了通過網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù),必須直接讀寫該存儲器。每個發(fā)送操作通常需要兩次 或三次存儲器訪問來實現(xiàn),并且需要一次或兩次存儲器訪問來實現(xiàn)每個接收操作。通常網(wǎng) 絡(luò)接口設(shè)備借助于直接存儲器訪問(DMA)來讀寫存儲器,但還必須通過外圍數(shù)據(jù)總線執(zhí)行 所有的這種訪問。每個發(fā)送或接收操作的功耗是不可忽視的,因為每次訪問必須經(jīng)過芯片 集105處的串行/去串行(serialisation/deserialisation,SERDES)電路(它為處理器 /存儲器控制器提供到總線的接口)以及在網(wǎng)絡(luò)接口設(shè)備處的SERDES電路(它為NIC提供 到總線的接口)。對于高速網(wǎng)絡(luò)接口設(shè)備來說,每秒可執(zhí)行上千次發(fā)送和/或接收操作,這種結(jié)構(gòu)的總功耗將變得非常大。類似地,通過外圍數(shù)據(jù)總線重復(fù)的存儲器訪問給通過網(wǎng)絡(luò) 接口設(shè)備執(zhí)行的發(fā)送和接收操作帶來了明顯的延遲。為了特定的應(yīng)用已經(jīng)開發(fā)了包括處理核和網(wǎng)絡(luò)接口設(shè)備的片上系統(tǒng) (System-on-a-Chip,SoC)設(shè)備,從而將網(wǎng)絡(luò)接口設(shè)備和處理器所能訪問的存儲器設(shè)置得更 近。例如,SoC設(shè)備的STMicroelectronics STM32W系列提供了 32位的ARM處理器和集成 的IEEE 802. 15. 4無線電裝置。然而,將包括PHY的整個網(wǎng)絡(luò)接口集成到處理器中極大地 增加了處理器所需的功率以及熱量,必須在處理器處應(yīng)對該熱量。并且,在PHY中處理的信 號給處理器引入了大量的附加電干擾,使得SoC結(jié)構(gòu)不適用于高速CPU。已經(jīng)提出了允許數(shù)據(jù)處理系統(tǒng)的組件(例如CPU和網(wǎng)絡(luò)接口設(shè)備)互相通信的 改進結(jié)構(gòu),但是沒有提供一種為具有到主機存儲器的低延遲數(shù)據(jù)通道的網(wǎng)絡(luò)接口提供低功 率的結(jié)構(gòu)。之前所作出的用于改善數(shù)據(jù)處理系統(tǒng)內(nèi)部通信的結(jié)構(gòu)的嘗試包括在MMiZZ www, transputer. net/tn/06/tn06. html 所公開的、由 INMOS Ltd 于 1988 年 1 月在 INMOS Technical Note 6, "IMS T800Architecture” 中引入的 IMST800 晶片機(transputer)。 其他的這種結(jié)構(gòu)描述在以下文獻中Finn,Gregory G. "An Integration of Network Communication with WorkstationArchitecture,,,ACM Computer Communication Review, 1991 年 10 月;禾口 Hayter,Μ.,McAuley, D.,"The Desk Area Network,,,ACM Transactions onOperating Systems, 14-21 頁,1991 年 10 月。在申請?zhí)枮?0/548,121和12/105,412的美國專利申請中描述了之前提議的、描 述以太網(wǎng)協(xié)議封裝的方案。因此,需要一種具有低功率需求并且具有到主機存儲器的低延遲數(shù)據(jù)通道的改進 網(wǎng)絡(luò)接口設(shè)備結(jié)構(gòu)。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了一種包括中央處理單元和分離的網(wǎng)絡(luò)接口功能組 的數(shù)據(jù)處理系統(tǒng),所述分離的網(wǎng)絡(luò)接口功能組包括與中央處理單元設(shè)置在一起的第一子 單元,被配置為通過為每個網(wǎng)絡(luò)數(shù)據(jù)分組生成數(shù)據(jù)鏈路層信息來至少部分地形成發(fā)送給網(wǎng) 絡(luò)端點的一系列網(wǎng)絡(luò)數(shù)據(jù)分組;以及在中央處理單元外部并通過互連(interconnect)與 該中央處理單元相耦合的第二子單元,該第二子單元被配置為通過網(wǎng)絡(luò)物理地傳送所述一 系列網(wǎng)絡(luò)數(shù)據(jù)分組。優(yōu)選地,第一子單元被配置來根據(jù)在互連上使用的數(shù)據(jù)協(xié)議,將所述系列中的每 個網(wǎng)絡(luò)數(shù)據(jù)分組封裝在一個或更多個互連數(shù)據(jù)分組。優(yōu)選地,第一子單元被配置為將互連 數(shù)據(jù)分組發(fā)送給第二子單元,以使第二子單元通過網(wǎng)絡(luò)傳送各個網(wǎng)絡(luò)數(shù)據(jù)分組。優(yōu)選地,第一子單元被配置為部分地形成所述一系列網(wǎng)絡(luò)數(shù)據(jù)分組,第二子單元 被配置為在網(wǎng)絡(luò)上使用的網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)鏈路層完成每一個所述一系列網(wǎng)絡(luò)數(shù)據(jù)分組的 形成。相應(yīng)地,第二子單元被配置為通過為每個網(wǎng)絡(luò)數(shù)據(jù)分組計算一個或更多個校驗和來 在數(shù)據(jù)鏈路層完成每一個所述一系列網(wǎng)絡(luò)數(shù)據(jù)分組的形成。優(yōu)選地,第二子單元被配置為根據(jù)在網(wǎng)絡(luò)上使用的網(wǎng)絡(luò)協(xié)議的物理層需求,通過 網(wǎng)絡(luò)物理地傳送一系列完成的數(shù)據(jù)分組。優(yōu)選地,所述數(shù)據(jù)處理系統(tǒng)進一步包括與中央處理單元耦合的存儲器和/或高速緩存以及中央處理單元中的存儲器管理單元,該存儲器管理單元被配置為為中央處理單元 和第一子單元提供到存儲器和/或高速緩存的訪問。優(yōu)選地,存儲器和/高速緩存被配置 為保存包括通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)的發(fā)送隊列,并且第一子單元被配置為借助于對存儲器管 理單元的讀請求來訪問發(fā)送隊列,并使用通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)來形成所述一系列網(wǎng)絡(luò)數(shù)據(jù) 分組。優(yōu)選地,可操作第二子單元來通過網(wǎng)絡(luò)接收一系列網(wǎng)絡(luò)數(shù)據(jù)分組,第一子單元被 配置為在數(shù)據(jù)鏈路層至少部分地處理每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組以便提取攜帶在該網(wǎng)絡(luò)數(shù) 據(jù)分組中的數(shù)據(jù)。優(yōu)選地,第一子單元被配置為在存儲器中存儲轉(zhuǎn)發(fā)表,該轉(zhuǎn)發(fā)表包括了這樣的信 息以使第一子單元能夠為每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組,依賴于接收的網(wǎng)絡(luò)數(shù)據(jù)分組的內(nèi)容, 將提取的數(shù)據(jù)路由給在存儲器和/或其他網(wǎng)絡(luò)設(shè)備中的一個或更多個接收隊列。相應(yīng)地,第二子單元被配置為根據(jù)在接近第二子單元的互連的數(shù)據(jù)鏈路上使用的 數(shù)據(jù)協(xié)議,將每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組封裝在一個或更多個互連數(shù)據(jù)分組中。優(yōu)選地,第二子單元被配置為將互連數(shù)據(jù)分組發(fā)送給第一子單元,以使第一子單 元在數(shù)據(jù)鏈路層至少部分地處理每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組并提取在接收的網(wǎng)絡(luò)數(shù)據(jù)分組 中攜帶的數(shù)據(jù)。根據(jù)本發(fā)明的第二個方面,提供了一種數(shù)據(jù)處理系統(tǒng),包括包括網(wǎng)絡(luò)接口控制 器的中央處理單元,該網(wǎng)絡(luò)接口控制器被配置為通過根據(jù)網(wǎng)絡(luò)協(xié)議在數(shù)據(jù)鏈路層至少部分 地將通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)形成幀(framing)來形成中間數(shù)據(jù)單元,每個中間數(shù)據(jù)單元包括 用于發(fā)送的數(shù)據(jù)的目的地網(wǎng)絡(luò)地址;與中央處理單元耦合的存儲器;與網(wǎng)絡(luò)連接的媒體接 口,被配置為通過網(wǎng)絡(luò)發(fā)送完全形成的數(shù)據(jù)分組;以及在中央處理單元和媒體接口之間延 伸的第一互連,該互連由一條或多條數(shù)據(jù)鏈路形成;其中所述網(wǎng)絡(luò)接口控制器被配置為將 網(wǎng)絡(luò)協(xié)議的中間數(shù)據(jù)單元封裝在通過第一互連發(fā)送的互連數(shù)據(jù)分組中,并且所述媒體接口 被配置為從通過第一互連接收的互連數(shù)據(jù)分組中提取中間數(shù)據(jù)單元,并在物理層處理該中 間數(shù)據(jù)單元,以便根據(jù)網(wǎng)絡(luò)協(xié)議完成數(shù)據(jù)分組的形成。優(yōu)選地,網(wǎng)絡(luò)接口控制器被配置為根據(jù)在接近中央處理單元的第一互連的數(shù)據(jù)鏈 路上使用的數(shù)據(jù)協(xié)議,將每個中間數(shù)據(jù)單元封裝在一個或更多個互連數(shù)據(jù)分組中。優(yōu)選地, 網(wǎng)絡(luò)接口控制器被配置為促使將一個或更多個互連數(shù)據(jù)分組發(fā)送給媒體接口,以便使媒體 接口通過網(wǎng)絡(luò)發(fā)送完全形成的網(wǎng)絡(luò)數(shù)據(jù)分組。優(yōu)選地,網(wǎng)絡(luò)接口控制器被配置為將封裝頭部寫到每個互連數(shù)據(jù)分組中,該封裝 頭部包括這樣的信息以使媒體接口用互連數(shù)據(jù)分組來重組各個中間數(shù)據(jù)單元。相應(yīng)地,第一互連包括兩條數(shù)據(jù)鏈路在中央處理單元和轉(zhuǎn)換單元之間延伸的第 一數(shù)據(jù)鏈路,以及在轉(zhuǎn)換單元和媒體接口之間延伸的第二數(shù)據(jù)鏈路。轉(zhuǎn)換單元被配置為將 根據(jù)在第一數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議而形成幀(frame)的互連數(shù)據(jù)分組轉(zhuǎn)換為根據(jù)在 第二數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議形成幀的互連數(shù)據(jù)分組,反之亦然。優(yōu)選地,轉(zhuǎn)換單元被配置為通過以下方式來轉(zhuǎn)換互連數(shù)據(jù)分組移除在第一數(shù)據(jù) 鏈路上使用的數(shù)據(jù)協(xié)議的成幀數(shù)據(jù),并根據(jù)在第二數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議來重新成幀 一個或更多個互連數(shù)據(jù)分組;或者,根據(jù)在第二數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議,增加關(guān)于一個 或更多個互連數(shù)據(jù)分組的附加成幀層。優(yōu)選地,第一數(shù)據(jù)鏈路是CPU互連,第二數(shù)據(jù)鏈路是外部數(shù)據(jù)總線。優(yōu)選地,在外圍數(shù)據(jù)總線上支持媒體接口。CPU互連可以是HyperTransport 互連、QuickPath互連和PCIe互連的其中之一。優(yōu)選地外圍數(shù)據(jù)總線是PCIe。優(yōu)選地,中央處理單元進一步包括存儲器管理單元,被配置為為中央處理單元和 網(wǎng)絡(luò)接口控制器提供到存儲器的訪問。優(yōu)選地,如果目的地網(wǎng)絡(luò)地址屬于中央處理單元處支持的進程,網(wǎng)絡(luò)接口控制器 被配置為直接將用于發(fā)送的數(shù)據(jù)寫入存儲器中的接收隊列,而不將該數(shù)據(jù)封裝到一個或更 多個互連數(shù)據(jù)分組中,該接收隊列對應(yīng)于所述目的地網(wǎng)絡(luò)地址。優(yōu)選地,網(wǎng)絡(luò)接口控制器進 一步被配置為不根據(jù)網(wǎng)絡(luò)協(xié)議在數(shù)據(jù)鏈路層將該數(shù)據(jù)形成幀。優(yōu)選地,存儲器被配置為保存一個或更多個包括了通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)的發(fā)送隊 列,并且可操作網(wǎng)絡(luò)接口控制器來借助于對存儲器管理單元的讀請求,在所述用于發(fā)送的 數(shù)據(jù)的各發(fā)送隊列處訪問該數(shù)據(jù)。優(yōu)選地,存儲器管理單元包括高速緩存,可操作來存儲保存在存儲器中的至少一 些數(shù)據(jù)的副本,該高速緩存可由中央處理單元和網(wǎng)絡(luò)接口控制器訪問。優(yōu)選地,該高速緩存 被配置為存儲由中央處理單元在存儲器中最近訪問的數(shù)據(jù)。優(yōu)選地,網(wǎng)絡(luò)接口控制器被配置為對于任何既能從存儲器中又能從高速緩存中獲 得的用于發(fā)送的數(shù)據(jù),從高速緩存中讀取用于發(fā)送的數(shù)據(jù)優(yōu)先于從存儲器中讀取該數(shù)據(jù)。 優(yōu)選地,網(wǎng)絡(luò)接口控制器被配置為對于不能從高速緩存獲得的用于發(fā)送的數(shù)據(jù),從存儲器 中讀取所述數(shù)據(jù),并且不將該數(shù)據(jù)寫入高速緩存。優(yōu)選地,網(wǎng)絡(luò)接口控制器被配置為當從高 速緩存讀取用于發(fā)送的數(shù)據(jù)時,使高速緩存的相應(yīng)的線無效以便使其他在中央處理單元處 執(zhí)行的進程改寫那些線。優(yōu)選地,可操作媒體接口來通過網(wǎng)絡(luò)接收網(wǎng)絡(luò)數(shù)據(jù)分組,并將接收的網(wǎng)絡(luò)數(shù)據(jù)分 組封裝在通過第一互連發(fā)送的互連數(shù)據(jù)分組中;并且網(wǎng)絡(luò)接口控制器被配置為從互連數(shù)據(jù) 分組中提取接收的網(wǎng)絡(luò)數(shù)據(jù)分組,并根據(jù)網(wǎng)絡(luò)協(xié)議在數(shù)據(jù)鏈路層至少部分地處理每個接收 的網(wǎng)絡(luò)數(shù)據(jù)分組,以便提取攜帶在每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組中的數(shù)據(jù)。優(yōu)選地,媒體接口被配置為根據(jù)在接近該媒體接口的第一互連的數(shù)據(jù)鏈路上使用 的數(shù)據(jù)協(xié)議,將每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組封裝在一個或更多個互連數(shù)據(jù)分組中。優(yōu)選地,媒 體接口被配置為將互連數(shù)據(jù)分組發(fā)送給網(wǎng)絡(luò)接口控制器,以使網(wǎng)絡(luò)接口控制器在數(shù)據(jù)鏈路 層至少部分地處理每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組并將攜帶在每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組中的數(shù) 據(jù)寫入在由包括在所接收網(wǎng)絡(luò)數(shù)據(jù)分組中的目的地網(wǎng)絡(luò)地址所識別的存儲器處的至少一 個接收隊列中。優(yōu)選地,網(wǎng)絡(luò)接口控制器被配置為當將攜帶在所接收網(wǎng)絡(luò)數(shù)據(jù)分組中的數(shù)據(jù)寫入 存儲器處的接收隊列時,將該數(shù)據(jù)寫入高速緩存。優(yōu)選地,網(wǎng)絡(luò)接口控制器被配置為在存儲器處存儲轉(zhuǎn)發(fā)表,該轉(zhuǎn)發(fā)表包括這樣的 信息以使網(wǎng)絡(luò)接口控制器依靠目的地網(wǎng)絡(luò)地址為每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組在存儲器和/ 或其他網(wǎng)絡(luò)設(shè)備處選取一個或更多個將向其路由所接收網(wǎng)絡(luò)數(shù)據(jù)分組的數(shù)據(jù)的接收隊列。優(yōu)選地,媒體接口被配置為把封裝頭部寫給每個互連數(shù)據(jù)分組,該封裝頭部包括 這樣的信息以使網(wǎng)絡(luò)接口控制器用互連數(shù)據(jù)分組重組各個網(wǎng)絡(luò)數(shù)據(jù)分組。優(yōu)選地,存儲器管理單元被配置為當從中央處理單元或網(wǎng)絡(luò)接口控制器接收到訪 問虛擬存儲器地址的請求時,將該虛擬存儲器地址轉(zhuǎn)換為數(shù)據(jù)處理系統(tǒng)的物理存儲器地址,并訪問該物理存儲器地址。優(yōu)選地,存儲器管理單元被配置為,如果代表網(wǎng)絡(luò)接口控制器的虛擬存儲器地址 的轉(zhuǎn)換失敗,則向網(wǎng)絡(luò)接口控制器產(chǎn)生頁面錯誤(pagefault)。優(yōu)選地,網(wǎng)絡(luò)接口控制器被 配置為,如果虛擬存儲器地址涉及發(fā)送隊列,響應(yīng)于頁面錯誤,使相應(yīng)于該虛擬存儲器地址 的發(fā)送隊列暫停,直到各個頁面已經(jīng)被重寫入存儲器;或者如果虛擬存儲器地址涉及接收 隊列,響應(yīng)于頁面錯誤,根據(jù)提出的是哪個請求,將接收的網(wǎng)絡(luò)數(shù)據(jù)分組的數(shù)據(jù)寫入由數(shù)據(jù) 處理系統(tǒng)的協(xié)議處理實體檢索的預(yù)留緩沖。相應(yīng)地,數(shù)據(jù)處理系統(tǒng)進一步包括包括第二網(wǎng)絡(luò)接口控制器的第二中央處理單 元,該第二網(wǎng)絡(luò)接口控制器也被配置為通過根據(jù)網(wǎng)絡(luò)協(xié)議在數(shù)據(jù)鏈路層至少部分地將發(fā)送 的數(shù)據(jù)形成幀,形成中間數(shù)據(jù)單元,每個中間數(shù)據(jù)單元包括用于發(fā)送的數(shù)據(jù)的目的地網(wǎng)絡(luò) 地址;以及在第二中央處理單元和媒體接口之間延伸的第二互連,第二互連由一條或多條 數(shù)據(jù)鏈路形成;其中第二網(wǎng)絡(luò)接口控制器被配置為將網(wǎng)絡(luò)協(xié)議的中間數(shù)據(jù)單元封裝在通 過第二互連發(fā)送的互連數(shù)據(jù)分組中,并且媒體接口被配置為從通過互連接收的互連數(shù)據(jù)分 組提取中間數(shù)據(jù)單元并在物理層處理中間數(shù)據(jù)單元,以便根據(jù)網(wǎng)絡(luò)協(xié)議完成數(shù)據(jù)分組的形 成。第二互連的一條或多條數(shù)據(jù)鏈路可與第一互連的一條或多條數(shù)據(jù)鏈路共享。優(yōu)選地,網(wǎng)絡(luò)接口控制器被配置為,如果在中央處理單元處形成的中間數(shù)據(jù)單元 的目標地網(wǎng)絡(luò)地址是在第二中央處理單元處支持的網(wǎng)絡(luò)地址,則將包括該中間數(shù)據(jù)單元的 經(jīng)封裝的互連數(shù)據(jù)分組發(fā)送到第二網(wǎng)絡(luò)接口控制器。優(yōu)選地,媒體接口包括管理控制器,該管理控制器被配置為處理接收的、用于由 (a)媒體接口和網(wǎng)絡(luò)接口控制器和(b)媒體接口和第二網(wǎng)絡(luò)接口控制器形成的網(wǎng)絡(luò)接口設(shè) 備的管理命令。相應(yīng)地,數(shù)據(jù)處理系統(tǒng)是包括了在機架處支持的一個或更多個刀片的刀片式服務(wù) 器,每個刀片具有一個或更多個中央處理單元,該一個或更多個中央處理單元中的至少一 個包括網(wǎng)絡(luò)接口控制器,媒體接口位于刀片式服務(wù)器的機架處。中央處理單元和第二中央處理單元可位于刀片式服務(wù)器的同一刀片處。優(yōu)選地, 通過包括第一互連的數(shù)據(jù)鏈路和第二互連的數(shù)據(jù)鏈路的CPU互連,中央處理單元和第二中 央處理單元互相可訪問。中央處理單元和第二中央處理單元可位于刀片式服務(wù)器的不同的刀片處。優(yōu)選 地,網(wǎng)絡(luò)接口控制器被配置為,如果在中央處理單元處形成的中間數(shù)據(jù)單元的目的地網(wǎng)絡(luò) 地址是屬于在第二中央處理單元處支持的進程的網(wǎng)絡(luò)地址,使封裝中間數(shù)據(jù)單元的互連數(shù) 據(jù)分組不經(jīng)由媒體接口、通過CPU互連被發(fā)送給第二網(wǎng)絡(luò)接口控制器。優(yōu)選地,在外圍數(shù)據(jù)總線處支持媒體接口,并且刀片式服務(wù)器的刀片被配置為通 過外圍數(shù)據(jù)總線互相通信。優(yōu)選地,數(shù)據(jù)處理系統(tǒng)在刀片式服務(wù)器的機架處進一步包括交換機,該交換機被 配置為在刀片式服務(wù)器的刀片之間路由互連數(shù)據(jù)分組。相應(yīng)地,該交換機被配置為,依靠在 外圍數(shù)據(jù)總線上使用的數(shù)據(jù)協(xié)議的層次上的互連數(shù)據(jù)分組的成幀信息來路由互連數(shù)據(jù)分 組。相應(yīng)地,該交換機被配置為,依靠在網(wǎng)絡(luò)協(xié)議的層級上的中間數(shù)據(jù)單元的成幀信息路由 封裝中間數(shù)據(jù)單元的互連數(shù)據(jù)分組。相應(yīng)地,外圍數(shù)據(jù)總線是PCIe,交換機是PCIe交換機。媒體接口可以是常規(guī)PCIe設(shè)備、SR-IOV PCIe設(shè)備和MR-IOV PCIe設(shè)備的其中之一。媒體接口可以是SR-IOV PCIe設(shè) 備,并且交換機是MR-IOV PCIe交換機。相應(yīng)地,媒體接口和數(shù)據(jù)處理系統(tǒng)的每個網(wǎng)絡(luò)接口控制器被配置為借助于一個或 更多個互連數(shù)據(jù)分組來交換控制數(shù)據(jù)。優(yōu)選地,網(wǎng)絡(luò)協(xié)議是以太網(wǎng)。根據(jù)本發(fā)明的第三方面,提供了一種通過網(wǎng)絡(luò)從數(shù)據(jù)處理系統(tǒng)發(fā)送數(shù)據(jù)的方法, 該數(shù)據(jù)處理系統(tǒng)包括,在到網(wǎng)絡(luò)的接口處的媒體接口、具有用于訪問存儲器的存儲器管理 單元的中央處理單元和在中央處理單元和媒體接口之間連接的互連,該方法包括借助存 儲器管理單元,位于中央處理單元處的網(wǎng)絡(luò)接口控制器從存儲器中的發(fā)送隊列獲取通過網(wǎng) 絡(luò)發(fā)送的數(shù)據(jù);在數(shù)據(jù)鏈路層上將網(wǎng)絡(luò)協(xié)議的包含所獲取的數(shù)據(jù)的數(shù)據(jù)分組至少部分地形 成幀;并根據(jù)在互連上使用的數(shù)據(jù)協(xié)議,將網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組封裝在通過互連發(fā)送的數(shù) 據(jù)分組中,并將該數(shù)據(jù)分組通過互連發(fā)送給媒體接口 ;媒體接口接收經(jīng)封裝的數(shù)據(jù)分組,從 經(jīng)封裝的數(shù)據(jù)分組中提取網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組,在物理層處理網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組以便根 據(jù)網(wǎng)絡(luò)協(xié)議完成數(shù)據(jù)分組的成幀,并將完全形成的網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組發(fā)送到網(wǎng)絡(luò)上。根據(jù)本發(fā)明的第四方面,提供了一種在數(shù)據(jù)處理系統(tǒng)中通過網(wǎng)絡(luò)接收數(shù)據(jù)的方 法,該數(shù)據(jù)處理系統(tǒng)包括,位于連接到網(wǎng)絡(luò)的接口處的媒體接口、具有用于訪問存儲器的存 儲器管理單元的中央處理單元和在中央處理單元和媒體接口之間連接的互連,該方法包 括媒體接口通過網(wǎng)絡(luò)接收網(wǎng)絡(luò)數(shù)據(jù)分組,并根據(jù)在互連上使用的數(shù)據(jù)協(xié)議,將接收的網(wǎng)絡(luò) 數(shù)據(jù)分組封裝在通過互連發(fā)送的數(shù)據(jù)分組中,并將該數(shù)據(jù)分組通過互連發(fā)送給位于中央處 理單元處的網(wǎng)絡(luò)接口控制器;網(wǎng)絡(luò)接口控制器接收經(jīng)封裝的數(shù)據(jù)分組,從經(jīng)封裝的數(shù)據(jù) 分組提取接收的網(wǎng)絡(luò)數(shù)據(jù)分組;根據(jù)網(wǎng)絡(luò)協(xié)議,在數(shù)據(jù)鏈路層至少部分地處理每個接收的 網(wǎng)絡(luò)數(shù)據(jù)分組,以便提取攜帶在每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組中的數(shù)據(jù);并且借助于存儲器管 理單元,將提取的數(shù)據(jù)寫入存儲器中的接收隊列。根據(jù)本發(fā)明的第五方面,提供了一種用于在數(shù)據(jù)處理系統(tǒng)處在中央處理單元間通 信數(shù)據(jù)的方法,數(shù)據(jù)處理系統(tǒng)具有借助于互連耦合在一起的第一中央處理單元和第二中央 處理單元,每個中央處理單元包括各自的網(wǎng)絡(luò)接口控制器,可操作網(wǎng)絡(luò)接口控制器來(a) 通過根據(jù)網(wǎng)絡(luò)協(xié)議在數(shù)據(jù)鏈路層至少部分地形成用于通信的數(shù)據(jù)的幀,來形成中間數(shù)據(jù)單 元,和(b)根據(jù)網(wǎng)絡(luò)協(xié)議在數(shù)據(jù)鏈路層至少部分地處理中間數(shù)據(jù)單元,以便提取攜帶在每 個中間數(shù)據(jù)單元中的通信的數(shù)據(jù),該方法包括第一中央處理單元將通信的數(shù)據(jù)傳遞給它 的第一網(wǎng)絡(luò)接口控制器;第一網(wǎng)絡(luò)接口控制器通過在數(shù)據(jù)鏈路層根據(jù)網(wǎng)絡(luò)協(xié)議至少部分地 形成通信的數(shù)據(jù)的幀,來形成包括通信數(shù)據(jù)的中間數(shù)據(jù)單元,將網(wǎng)絡(luò)協(xié)議的中間數(shù)據(jù)單元 封裝在通過互連發(fā)送的數(shù)據(jù)分組中,并通過互連將經(jīng)封裝的數(shù)據(jù)分組發(fā)送給第二網(wǎng)絡(luò)接口 控制器;第二網(wǎng)絡(luò)接口控制器接收經(jīng)封裝的數(shù)據(jù)分組,從經(jīng)封裝的數(shù)據(jù)分組提取中間數(shù)據(jù) 單元,在數(shù)據(jù)鏈路層根據(jù)網(wǎng)絡(luò)協(xié)議至少部分地處理每個中間數(shù)據(jù)單元,以便提取攜帶在每 個中間數(shù)據(jù)單元中的數(shù)據(jù),并將提取的數(shù)據(jù)傳遞給第二中央處理單元。根據(jù)本發(fā)明的第六方面,提供了一種數(shù)據(jù)處理系統(tǒng)的中央處理單元,該中央處理 單元包括處理核;鏈路模塊,用于通過數(shù)據(jù)總線通信預(yù)定數(shù)據(jù)協(xié)議的數(shù)據(jù)分組;存儲器管 理單元,可操作來從與中央處理單元耦合的存儲器獲取數(shù)據(jù);以及網(wǎng)絡(luò)接口控制器,被配置 為借助于存儲器管理單元,獲取通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù),在數(shù)據(jù)鏈路層將網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組形成幀,數(shù)據(jù)分組中包括所獲取數(shù)據(jù);并且將這些分組封裝在預(yù)定數(shù)據(jù)協(xié)議的數(shù)據(jù)分組 中,并通過數(shù)據(jù)總線借助鏈路模塊通信。優(yōu)選地,網(wǎng)絡(luò)接口控制器在網(wǎng)絡(luò)協(xié)議的物理層不將數(shù)據(jù)分組形成幀。根據(jù)本發(fā)明的第七方面,提供了一種數(shù)據(jù)處理系統(tǒng)的中央處理單元,該中央處理 單元包括處理核;高速緩存;存儲器管理單元,可操作來從與中央處理單元耦合的存儲器 獲取數(shù)據(jù);和網(wǎng)絡(luò)接口控制器,被配置為當使用時在與中央處理單元耦合的存儲器中存儲 至少一些自身的狀態(tài);其中處理核和網(wǎng)絡(luò)接口控制器被配置為,借助于存儲器管理單元訪 問與中央處理單元耦合的存儲器,并且高速緩存被配置為,高速緩存在與中央處理單元耦 合的存儲器中存儲的數(shù)據(jù)。相應(yīng)地,網(wǎng)絡(luò)接口控制器的狀態(tài)包括轉(zhuǎn)發(fā)表和地址轉(zhuǎn)換表的其中之一或兩者。根據(jù)本發(fā)明的第八方面,提供一種在數(shù)據(jù)處理系統(tǒng)中支持的并對于該數(shù)據(jù)處理系 統(tǒng)將自身表現(xiàn)為PCIe設(shè)備的電子設(shè)備,數(shù)據(jù)處理系統(tǒng)包括中央處理單元和PCIe數(shù)據(jù)總線, 外圍設(shè)備包括兩個組件位于中央處理單元處的核心組件,操作該核心組件以處理對電子 設(shè)備的I/O請求;以及核心組件通過PCIe數(shù)據(jù)總線可訪問的外圍組件;其中核心組件被配 置為響應(yīng)于發(fā)送給外圍組件的I/O請求。優(yōu)選地,為核心組件分配定義其控制范圍(control aperture)的硬件地址范圍, 并且外圍組件被配置為,提供指示包括核心組件控制范圍的基地址的硬件地址的范圍的基 地址寄存器,以便在核心組件的控制范圍內(nèi)處理發(fā)送給由基地址寄存器指示的硬件地址范 圍的I/O請求。相應(yīng)地,外圍組件附加的是一個或更多個其他PCIe設(shè)備的組件,并且外圍組件被 配置為,為每個其他PCIe設(shè)備提供附加的基地址寄存器,每個附加的基地址寄存器被配置 以便在其他PCIe設(shè)備各自的核心組件中處理發(fā)送給由該基地址寄存器指示的硬件地址范 圍的I/O請求。優(yōu)選地,外圍組件被配置為,將其接收的中斷配置請求轉(zhuǎn)發(fā)給核心組件,以在該核 心組件中處理。優(yōu)選地,外圍組件進一步提供支持傳統(tǒng)(legacy)寄存器組的傳統(tǒng)基地址寄存器, 該外圍組件被配置為,當讀或?qū)憘鹘y(tǒng)寄存器時,將該讀或?qū)懹成浣o該傳統(tǒng)寄存器以對核心 組件的控制范圍進行讀或?qū)?,以便在核心組件的控制范圍處處理發(fā)送給傳統(tǒng)寄存器組的傳 統(tǒng)I/O請求。
現(xiàn)在將參考附圖以示例的方式描述本發(fā)明,其中圖1是借助外圍總線與數(shù)據(jù)處理系統(tǒng)耦合的傳統(tǒng)網(wǎng)絡(luò)接口設(shè)備的示意圖。圖2是根據(jù)本發(fā)明配置的網(wǎng)絡(luò)接口設(shè)備的示意圖。圖3是具有根據(jù)本發(fā)明配置的網(wǎng)絡(luò)接口設(shè)備的數(shù)據(jù)處理系統(tǒng)的示意圖。圖4是根據(jù)互連以太網(wǎng)(Ethernet-over-Intercormect)數(shù)據(jù)協(xié)議配置的數(shù)據(jù)分 組的示意圖。圖5a和5b是具有根據(jù)本發(fā)明配置的網(wǎng)絡(luò)接口設(shè)備的多處理器數(shù)據(jù)處理系統(tǒng)的示 意圖。
圖6是根據(jù)本發(fā)明的教導(dǎo),具有分離結(jié)構(gòu)的PCIe設(shè)備的示意圖。圖7是根據(jù)本發(fā)明配置的控制器單元的示意圖。圖8是根據(jù)本發(fā)明配置的媒體接口的示意圖。圖9是具有根據(jù)本發(fā)明配置的媒體接口和多個控制器單元的刀片式服務(wù)器的示意圖。
具體實施例方式提出以下說明以使任何本領(lǐng)域的技術(shù)人員能夠做出并使用該發(fā)明,并且在特殊應(yīng)用的上下文中提供以下說明。對公開實施例的各種變型對于那些本領(lǐng)域技術(shù)人員來說將是 顯而易見的。在此定義的總原則可應(yīng)用于其他實施例和應(yīng)用,而不脫離本發(fā)明的精神和范圍。 因此,并不意在將本發(fā)明限制在所展示的實施例,而是被授予與在此公開的原則和特征一 致的最寬的范圍。本發(fā)明涉及一種在數(shù)據(jù)處理系統(tǒng)中網(wǎng)絡(luò)接口設(shè)備的新裝置。根據(jù)本發(fā)明配置的網(wǎng)絡(luò)接口設(shè)備和處理器如圖2所示。處理器202是適合在諸如 服務(wù)器或個人計算機這樣的數(shù)據(jù)處理系統(tǒng)中使用的中央處理單元(CPU)。處理器可包括在 單一集成電路封裝中的一個或更多個處理核(這些核可以位于或者不位于同一模具(die) 上)。網(wǎng)絡(luò)接口設(shè)備包括兩個單元控制器單元203,位于處理器202中,并且具有用于處理 數(shù)據(jù)分組通過網(wǎng)絡(luò)的發(fā)送和接收的控制邏輯;以及媒體接口單元206,位于物理網(wǎng)絡(luò)鏈路 210中,并且被配置為為處理器提供到網(wǎng)絡(luò)209的物理接口。處理器202通過互連208與媒 體接口單元206相耦合。處理器被配置為使控制器單元使用互連208??刂破鲉卧?03是由控制器單元和媒體接口單元形成的網(wǎng)絡(luò)接口設(shè)備的控制器 電路??刂破鲉卧幚戆l(fā)送和接收操作的邏輯方面,例如從主機存儲器以及向主機存儲器 讀和寫數(shù)據(jù),根據(jù)在網(wǎng)絡(luò)(例如以太網(wǎng))上使用的協(xié)議,形成通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)分組;根 據(jù)一個或更多個服務(wù)質(zhì)量算法,執(zhí)行分組優(yōu)先排序;并確定所接收的數(shù)據(jù)應(yīng)當被路由到的 適當端點,并相應(yīng)地路由該接收的數(shù)據(jù)。媒體接口單元在控制器單元的控制下,通過網(wǎng)絡(luò)進 行數(shù)據(jù)的物理發(fā)送和接收。媒體接口單元包括被配置為在物理層通過網(wǎng)絡(luò)介質(zhì)210(可能是光纖或銅線鏈路)進行信號傳送的電路207。這種電路典型地被提供為集成電路,并被稱為PHY。PHY是 網(wǎng)絡(luò)接口設(shè)備的形成鏈路層數(shù)據(jù)分組和網(wǎng)絡(luò)上的物理層信令之間的接口的那部分。例如, 對于以太網(wǎng)網(wǎng)絡(luò)接口設(shè)備,PHY根據(jù)IEEE 802. 3執(zhí)行物理層信令傳輸。如傳統(tǒng)的那樣,在處理器202的集成電路處提供控制器單元203,在網(wǎng)絡(luò)接口設(shè)備 處不提供。因此,處理器和控制器單元可以直接通信,因為這兩者之間的數(shù)據(jù)通路不經(jīng)過互 連或任何外圍總線。這減少了處理器和控制器之間通信的延遲。進一步地,控制器單元可 受益于典型地用于中央處理單元結(jié)構(gòu)中的高級處理技術(shù),減少模尺寸(die size)和網(wǎng)絡(luò)接 口設(shè)備的凈功耗,潛在地使該電路可以以更高的時鐘速度運行。更高的時鐘速度具有減小 延遲并增加最大數(shù)據(jù)傳輸速率的優(yōu)點。如果互連208是CPU互連或在處理器本地的數(shù)據(jù)總線,例如QuickPath互連 (QPI)^HyperTransport(HT)或PCI Express(PCIe)鏈接,這將是有益的。這使控制器單元能利用處理器的互連電路,而不需要處理器包括用于控制器單元和媒體接口之間的通信的 附加電路。并且,與諸如外圍組件互連(PCI)這樣的外圍數(shù)據(jù)總線相比,CPU互連典型地提 供高帶寬和低延遲。在該情況下,媒體接口 206將被配置為通過為其提供適當?shù)拇?去 串行(SERDES)電路來支持通過CPU互連的通信。作為另選方式,互連208可以是外圍數(shù)據(jù)總線或組合,或由可選I/O集線器205耦 合在一起的兩個或多個鏈路。例如,控制器單元和媒體接口之間的數(shù)據(jù)傳輸可以通過諸如 HT這樣的CPU互連被攜帶給處理器以及從處理器被帶走,并且可在I/O集線器處得以轉(zhuǎn)換, 以通過在其上支持媒體接口的、諸如PCIe這樣的外圍數(shù)據(jù)總線來傳輸。在典型的數(shù)據(jù)處理 系統(tǒng)中,將在支持處理器202的芯片集處提供I/O集線器。如果在外圍數(shù)據(jù)總線處支持媒體接口,則處理器可被配置為包括必要的電路以使 其直接通過該數(shù)據(jù)總線通信。例如,如果在PCIe數(shù)據(jù)總線上提供媒體接口,可為處理器提 供可由控制器單元訪問的并被配置為支持去往和來自處理器的PCIe通信的電路。圖3展示了在數(shù)據(jù)處理系統(tǒng)中,根據(jù)本發(fā)明配置的網(wǎng)絡(luò)接口設(shè)備的使用。圖2的 處理器形成了數(shù)據(jù)處理器系統(tǒng)201的中央處理單元,數(shù)據(jù)處理系統(tǒng)201具有處理器借助存 儲器總線211可訪問的存儲器204。數(shù)據(jù)處理系統(tǒng)支持被配置為在處理器202處執(zhí)行并利 用由控制器單元203和媒體接口 206形成的網(wǎng)絡(luò)接口設(shè)備(NIC)的軟件。在此所謂的數(shù)據(jù)處理系統(tǒng)可以是任何類型的計算機,例如服務(wù)器、刀片、桌上機器 或者便攜式設(shè)備。數(shù)據(jù)處理系統(tǒng)包括一個或更多個處理核(這些將被稱為處理器,雖然每 個物理處理器實際上可支持多個核)以及存儲器,處理器借助集成在處理器中的存儲器控 制器可直接訪問該存儲器。典型的數(shù)據(jù)處理系統(tǒng)可通過適當?shù)目偩€和互連來支持一個或更 多個網(wǎng)絡(luò)接口設(shè)備、存儲設(shè)備以及其他外圍設(shè)備。數(shù)據(jù)處理系統(tǒng)可使得網(wǎng)絡(luò)接口設(shè)備經(jīng)由網(wǎng)絡(luò)發(fā)送存儲在存儲器204中的數(shù)據(jù)。類 似地,一旦接收到數(shù)據(jù),網(wǎng)絡(luò)接口設(shè)備可在由數(shù)據(jù)處理系統(tǒng)建立的接收隊列處將接收的數(shù) 據(jù)寫入存儲器204。為實現(xiàn)數(shù)據(jù)發(fā)送/接收,由控制器單元對數(shù)據(jù)處理系統(tǒng)的存儲器執(zhí)行讀 /寫操作,因此通過將控制器單元設(shè)置在處理器中可以實現(xiàn)顯著的性能優(yōu)勢。特別地,網(wǎng)絡(luò) 接口設(shè)備的控制器單元被配置為,使用處理器的存儲器管理單元212,并通過處理器的存儲 器總線211訪問存儲器204。這減少了與每次發(fā)送或接收操作相關(guān)的延遲。如圖1所示,考慮由處理器103和存儲器104通過外圍總線106可訪問的傳統(tǒng)網(wǎng)絡(luò) 接口設(shè)備102來處理的發(fā)送操作。為了通過網(wǎng)絡(luò)發(fā)送數(shù)據(jù),NIC典型地(a)從存儲器104讀 取描述符,該描述符標識存儲器的存儲傳輸數(shù)據(jù)的位置,(b)通過總線讀取經(jīng)識別的數(shù)據(jù), 并(c)通過網(wǎng)絡(luò)發(fā)送該數(shù)據(jù)。因此每個發(fā)送操作典型地包括兩次存儲器訪問,總線的I/O 集線器處的存儲器管理單元提供存儲器地址轉(zhuǎn)換。并且,每次存儲器訪問通過外圍總線來 完成。相對照地,根據(jù)本發(fā)明配置的網(wǎng)絡(luò)接口設(shè)備的控制器單元能夠通過執(zhí)行以下步驟 來進行發(fā)送操作(i)借助于處理器的高速存儲器總線211從存儲器讀取標識符;(ii)通過同一高速存儲器總線讀取標識的數(shù)據(jù)(典型地被存儲在發(fā)送隊列處);(iii)通過互連208將該數(shù)據(jù)傳遞給媒體接口 206,并使該媒體接口通過網(wǎng)絡(luò)發(fā)送 該數(shù)據(jù)。
控制器單元所需的任何存儲器地址轉(zhuǎn)換可由處理器的存儲器管理單元提供,這一 般明顯的比從I/O集線器請求存儲器地址轉(zhuǎn)換要更快些。以這種方式控制器單元可以借助 于對存儲器管理單元的讀取請求訪問發(fā)送隊列。通常,控制器單元可訪問存儲器處的用于 發(fā)送的數(shù)據(jù)、標識用于發(fā)送的數(shù)據(jù)的元數(shù)據(jù)和其他控制信息(例如卸載和高速緩存選項的 控制)。如果標識符和用于發(fā)送的數(shù)據(jù)可借助于對存儲器管理單元的讀取請求從CPU存儲 器高速緩存中直接讀取,從高速緩存中讀取所引起的延遲非常低,這是更優(yōu)選的。如果網(wǎng)絡(luò)接口設(shè)備的控制器和媒體接口之間的數(shù)據(jù)傳輸通過高帶寬、低延遲的 CPU互連發(fā)生,并且附加地擴展到由網(wǎng)絡(luò)接口設(shè)備執(zhí)行的接收操作,則本發(fā)明的優(yōu)點甚至更 大。將網(wǎng)絡(luò)接口設(shè)備控制器(控制器單元)設(shè)置在CPU處的一個特殊優(yōu)點是在同一處 理器處支持的網(wǎng)絡(luò)端點之間的存儲器傳輸通過非常低延遲的數(shù)據(jù)通道發(fā)生。這種情況頻繁 地出現(xiàn)在虛擬化的數(shù)據(jù)處理系統(tǒng)中,在該系統(tǒng)中通過諸如管理程序(hypervisor)這樣的 特權(quán)方式域支持多個訪客操作系統(tǒng)(guest operating system)。由于每個訪客OS獨立于 其他訪客地運行,在一個訪客OS處的應(yīng)用可能不知道其想發(fā)送數(shù)據(jù)到的網(wǎng)絡(luò)端點是否在 同一處理器處、同一服務(wù)器處的不同的處理器處、或可通過物理網(wǎng)絡(luò)自身訪問的遠程服務(wù) 器上被支持。因此,在一個訪客OS處的應(yīng)用可能請求(由控制器單元和媒體接口形成的) 網(wǎng)絡(luò)接口設(shè)備向?qū)嶋H上在同一處理器處被支持的另一個客戶OS處的網(wǎng)絡(luò)端點發(fā)送數(shù)據(jù)。 在這種情況下(假設(shè)數(shù)據(jù)處理系統(tǒng)不是根據(jù)VEPA協(xié)議配置的),控制器單元確定目的網(wǎng)絡(luò) 端點是它管理的一個,并將該數(shù)據(jù)寫入目標端點的接收緩沖器中。因此在同一處理器處支 持的端點間的網(wǎng)絡(luò)傳輸不涉及媒體接口,并且可通過從主機存儲器中的發(fā)送緩沖器讀取并 寫入在同一主機存儲器中的接收緩沖器來實現(xiàn)。由于這種網(wǎng)絡(luò)數(shù)據(jù)分組不經(jīng)過媒體接口, 可以僅僅部分地形成這些數(shù)據(jù)分組。當然,在原理上將包括網(wǎng)絡(luò)接口設(shè)備的PHY的媒體接口附加地集成在處理器處 (即完全集成網(wǎng)絡(luò)接口設(shè)備和處理器)是可能的。然而,這具有一些缺點需要在CPU包裝 處的附加管腳,本質(zhì)上需要定義新的插座規(guī)范(socket specification);這將增加CPU所 需的功率以及在CPU處必須處理的熱量;在PHY處處理的高速信號將把大量的附加電干擾 引入CPU ;并且,因為CPU在數(shù)據(jù)處理系統(tǒng)的低功率狀態(tài)下關(guān)閉,在網(wǎng)絡(luò)接口設(shè)備處處理遠 程系統(tǒng)管理和LAN上喚醒(wake-on-LAN)非常困難。互連以太網(wǎng)(Ethernet-over-interconnect)通常,控制器單元203被配置為根據(jù)相關(guān)網(wǎng)絡(luò)協(xié)議的鏈路層需求充分地形成網(wǎng)絡(luò) 數(shù)據(jù)分組,媒體接口 207被配置為根據(jù)網(wǎng)絡(luò)協(xié)議的物理層需求,將那些數(shù)據(jù)分組傳送到網(wǎng) 絡(luò)結(jié)構(gòu)上。一些鏈路層需求可留給媒體接口,例如校驗和的計算或其他通常在外圍網(wǎng)絡(luò)接 口設(shè)備處的專用硬件上執(zhí)行的協(xié)議處理。為了將至少部分形成的網(wǎng)絡(luò)數(shù)據(jù)分組(即分組可能被分段和/或具有不完 整的頭部或者其它數(shù)據(jù)結(jié)構(gòu))從控制器單元傳輸給媒體接口,提議了一種協(xié)議來將 網(wǎng)絡(luò)數(shù)據(jù)分組封裝到在互連上使用的數(shù)據(jù)協(xié)議的分組中。將該協(xié)議稱為互連以太網(wǎng) (Ethernet-over-interconnect)或者Eol,因為在優(yōu)選實施例中,網(wǎng)絡(luò)協(xié)議是以太網(wǎng)。然 而,在可選的實施例中,由控制器單元和媒體接口形成的網(wǎng)絡(luò)接口設(shè)備可支持通過除以太 網(wǎng)之外的網(wǎng)絡(luò)結(jié)構(gòu)的通信,在這種情況下,上述Eol協(xié)議將替代地定義那種其它協(xié)議的數(shù)據(jù)分組的封裝。例如,由控制器單元和媒體接口形成的網(wǎng)絡(luò)接口設(shè)備可以是無限帶寬 (Infiniband)網(wǎng)絡(luò)接口設(shè)備,具有被配置為形成無限帶寬數(shù)據(jù)鏈路層數(shù)據(jù)分組的控制器單 元和被配置為根據(jù)無限帶寬規(guī)范物理層需求發(fā)送信號的媒體接口。因此,在此使用的術(shù)語 “Eol ” 一般是指對網(wǎng)絡(luò)數(shù)據(jù)分組在數(shù)據(jù)分組中的封裝進行控制的協(xié)議,該數(shù)據(jù)分組適合于 在數(shù)據(jù)處理系統(tǒng)中通過互連在控制器單元和媒體接口之間傳輸??刂破鲉卧兔襟w接口被配置為,按照在它們之間延伸的互連上使用的數(shù)據(jù)協(xié)議 來傳送數(shù)據(jù)分組,那些數(shù)據(jù)分組本身的有效載荷符合Eol協(xié)議。因此,通過互連發(fā)送的數(shù)據(jù) 分組將典型地具有如圖4所示的嵌套結(jié)構(gòu)。互連頭部401對Eol頭部402進行封裝,Eol 頭部402反過來封裝在控制器單元處形成的網(wǎng)絡(luò)數(shù)據(jù)分組403的至少一部分。如各協(xié)議所 需,這些頭部可具有相應(yīng)的尾部(footer)404。如前所述,優(yōu)選地,由控制器單元203和媒體接口 207形成的網(wǎng)絡(luò)接口設(shè)備是以太 網(wǎng)網(wǎng)絡(luò)接口設(shè)備。因此,控制器單元被配置為,根據(jù)IEEE802. 3的鏈路層需求充分地形成以 太網(wǎng)分組,媒體接口被配置為,根據(jù)IEEE 802. 3的物理層需求將以太網(wǎng)數(shù)據(jù)分組傳送到網(wǎng) 絡(luò)結(jié)構(gòu)上。以太網(wǎng)分組優(yōu)選地將包括以太網(wǎng)頭部,但不包括幀同步(framing)、前導(dǎo)和在媒 體接口處計算的CRC數(shù)據(jù)。依賴于它們相對的分組大小,在控制器單元處形成的網(wǎng)絡(luò)數(shù)據(jù)分組可橫跨(span) 一個或更多個互連數(shù)據(jù)分組400。Eol頭部包括正確重組每個網(wǎng)絡(luò)數(shù)據(jù)分組部分所需的信 息和目的地設(shè)備地址。在互連上的每個設(shè)備具有互連數(shù)據(jù)分組能被尋址到的設(shè)備地址。優(yōu) 選地,Eol協(xié)議支持控制分組和數(shù)據(jù)通路分組。控制分組優(yōu)選地可由它們的Eol頭部標識, 使控制器單元能配置、控制和查詢媒體接口。媒體接口被配置為用一個或更多個控制分組 來響應(yīng)來自控制器單元的查詢。數(shù)據(jù)分組的Eol頭部可進一步包括由中間數(shù)據(jù)總線交換機或控制器單元使用的 附加信息。這種信息可包括VLAN信息、業(yè)務(wù)類型信息和數(shù)據(jù)分組優(yōu)先級信息。該信息可從 經(jīng)封裝的網(wǎng)絡(luò)數(shù)據(jù)分組(例如以太網(wǎng))被映射。對于嚴格保持兩個端點間數(shù)據(jù)分組順序的互連數(shù)據(jù)協(xié)議,可省略Eol頭部。在這 種情況下,媒體接口可被配置為,通過解析輸入的互連數(shù)據(jù)分組得到包括在其中的網(wǎng)絡(luò)數(shù) 據(jù)分組的開始和結(jié)束端點,來重組網(wǎng)絡(luò)數(shù)據(jù)分組。在本發(fā)明的該實施例中,控制分組可被支 持為封裝在網(wǎng)絡(luò)數(shù)據(jù)分組中的協(xié)議,或被支持為封裝在互連數(shù)據(jù)分組中的分離控制信道。由于Eol數(shù)據(jù)分組遵守在互連上使用數(shù)據(jù)協(xié)議,依賴于互連頭部,不改變地執(zhí)行 數(shù)據(jù)分組的路由。因此,從控制器單元發(fā)送至媒體接口或者從媒體接口發(fā)送至控制器單 元的數(shù)據(jù)分組在互連層級上(典型地通過使用物理設(shè)備地址)被尋址到目標設(shè)備。如果 數(shù)據(jù)必須經(jīng)過多于一條的在控制器單元和媒體接口之間的鏈路,則耦合這兩條鏈路的I/ 0集線器或互連交換機執(zhí)行任何需要的地址轉(zhuǎn)換,并且可(a)剝離來自初始鏈路的互連頭 部并將它替換為根據(jù)下一鏈路的協(xié)議的互連頭部,或(b)根據(jù)下一鏈路的協(xié)議封裝互連 數(shù)據(jù)分組。例如,如果正初始地通過HyperTransport鏈路到I/O集線器、然后通過PCIe 總線從控制器單元向媒體接口發(fā)送以太網(wǎng)數(shù)據(jù)分組,則互連數(shù)據(jù)分組在(a)的情況下 將其HyperTransport頭部替換為PCIe頭部,或者在(b)的情況下增加PCIe頭部,封裝 HyperTransport 數(shù)據(jù)分組。重要地,因為控制器單元和媒體接口借助于Eol數(shù)據(jù)分組互相交換數(shù)據(jù),數(shù)據(jù)鏈路層網(wǎng)絡(luò)數(shù)據(jù)作為尋址(在互連頭部中)到各個目標設(shè)備的互連數(shù)據(jù)分組,在控制器單元 和媒體接口之間被傳輸。例如,為了通過網(wǎng)絡(luò)執(zhí)行發(fā)送操作,控制器單元將形成網(wǎng)絡(luò)數(shù)據(jù)分 組,并使該網(wǎng)絡(luò)數(shù)據(jù)分組被封裝,并在一個或更多個互連數(shù)據(jù)分組中被發(fā)送給媒體接口。因 此,控制器單元能通過根據(jù)Eol協(xié)議封裝數(shù)據(jù)并將其發(fā)送到互連上來將數(shù)據(jù)推送(push)給 媒體接口。這與傳統(tǒng)的在外圍數(shù)據(jù)總線處支持的網(wǎng)絡(luò)接口設(shè)備形成了對比,傳統(tǒng)的網(wǎng)絡(luò)接 口設(shè)備通過從在主機存儲器中的一個或更多個地址請求用于發(fā)送的數(shù)據(jù)來執(zhí)行發(fā)送操作。 換句話說,傳統(tǒng)的網(wǎng)絡(luò)接口設(shè)備必須從主機存儲器獲取其發(fā)送操作所需的所有數(shù)據(jù),這比 較慢,因為必須先通過外圍數(shù)據(jù)總線告知網(wǎng)絡(luò)接口設(shè)備哪些存儲器地址含有用于發(fā)送的數(shù) 據(jù)。使用Eol使能了處理器和媒體接口之間對稱的數(shù)據(jù)傳輸當處理器有數(shù)據(jù)要通過 網(wǎng)絡(luò)發(fā)送時,它使控制器單元將該數(shù)據(jù)推送給媒體接口 ;當媒體接口通過網(wǎng)絡(luò)接收數(shù)據(jù)時, 媒體接口將該數(shù)據(jù)推送給控制器單元。并且,在處理器處提供控制器單元和在互連上使用Eol協(xié)議,使在多處理器數(shù)據(jù) 處理系統(tǒng)中的處理器能夠借助于由控制器單元支持的網(wǎng)絡(luò)協(xié)議(優(yōu)選的以太網(wǎng)協(xié)議)在 CPU層級上邏輯地通信。然而,控制器單元間的通信并不采用媒體接口提供到其的接口 的網(wǎng)絡(luò)結(jié)構(gòu)的速度,而是采用處理器間互連的速度。這種數(shù)據(jù)處理系統(tǒng)的處理器形成了 邏輯上由網(wǎng)絡(luò)協(xié)議互連的、物理上由相對(與典型的以太網(wǎng)鏈路相比較)高速的互連所 互連的處理器網(wǎng)。優(yōu)選地,這些互連是提供高帶寬和低延遲鏈路的CPU互連,例如QPI、 HyperTransport或者PCIe。注意,根據(jù)網(wǎng)絡(luò)協(xié)議處理的處理器間通信不需要涉及媒體接 口,優(yōu)選地,該通信在通信的處理器的控制器單元間或者在兩個處理器都能訪問的單個控 制器單元內(nèi)直接進行。如果單一的媒體接口被配置為支持多處理器系統(tǒng)的多個控制器單元的通信,也是 有益的。對于PCIe互連,這可通過使用PCIe媒體接口來實現(xiàn)。這使得媒體接口提供到其 的接口的一個或更多個物理網(wǎng)絡(luò)端口可被具有根據(jù)本發(fā)明配置的控制器單元的多個處理 器所共享。在具有PCIe多根能力的系統(tǒng)中,媒體接口優(yōu)選地是PCIe MR-IOV設(shè)備。數(shù)據(jù)處 理系統(tǒng)(多處理器或相反)可支持多個媒體接口,每一個媒體接口可提供到不同網(wǎng)絡(luò)的訪 問——控制器單元簡單地尋址任何一個適合給定通信操作的媒體接口。在數(shù)據(jù)處理系統(tǒng)內(nèi)多個控制器單元之間共享媒體接口的優(yōu)點包括,由于需要更少 的PHY,減少了功率需求,以及需要更少的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò)交換端口。注意,所有的Eol數(shù)據(jù)分組的路由在互連層級處被執(zhí)行。每個控制器單元被配置 為促使形成具有適當互連頭部的互連數(shù)據(jù)分組,從而每個網(wǎng)絡(luò)數(shù)據(jù)分組到達它的目標端 點。例如,將發(fā)送給在多處理器系統(tǒng)的另一個處理器處的控制器單元的網(wǎng)絡(luò)數(shù)據(jù)分組進行 封裝,并通過互連(該互連可包括一個或更多個鏈接,例如HyperTransport和PCIe鏈接) 路由給另一個處理器的控制器單元。對發(fā)送給通過網(wǎng)絡(luò)可訪問的遠程數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò) 數(shù)據(jù)分組進行封裝,并通過互連路由給適當?shù)拿襟w接口以發(fā)送到網(wǎng)絡(luò)上。優(yōu)選地,在處理器處提供被配置為通過互連執(zhí)行數(shù)據(jù)分組的物理信令發(fā)送的 SERDES電路。對控制器單元和處理器進行配置以便使控制器單元能借助于SERDES電路通 過互連傳送數(shù)據(jù)。優(yōu)選地,控制器單元維護一個或更多個查找表,查找表包括網(wǎng)絡(luò)地址和互 連上設(shè)備地址之間的對應(yīng)關(guān)系。例如,將要發(fā)送到媒體接口提供到其的接口的網(wǎng)絡(luò)上的網(wǎng)絡(luò)地址的數(shù)據(jù)分組發(fā)送給在互連上媒體接口的設(shè)備地址;將要發(fā)送到與在另一個處理器上 執(zhí)行的應(yīng)用的端點相對應(yīng)的網(wǎng)絡(luò)地址的數(shù)據(jù)分組發(fā)送給那個處理器的控制器單元的設(shè)備 地址。設(shè)備地址可以在或可以不在與數(shù)據(jù)處理系統(tǒng)的物理存儲器相同的地址空間中。在圖5a和5b中展現(xiàn)了根據(jù)本發(fā)明原理配置的以太網(wǎng)網(wǎng)絡(luò)接口設(shè)備的兩種實現(xiàn)。在圖5a中,數(shù)據(jù)處理器系統(tǒng)501包括兩個處理器502、503,它們中的每一個具有控 制器單元504、505。媒體接口 508借助于可以是HyperTransport鏈路的CPU互連結(jié)構(gòu)509 與每個處理器相耦合。為了在處理器502處執(zhí)行的第一應(yīng)用將數(shù)據(jù)發(fā)送給在處理器503處執(zhí)行的第二應(yīng) 用,第一應(yīng)用通過(由控制器單元和媒體接口形成的)網(wǎng)絡(luò)接口設(shè)備向第二應(yīng)用的端點作 出發(fā)送操作的請求。這典型地借助于從第一應(yīng)用到網(wǎng)絡(luò)接口設(shè)備的設(shè)備驅(qū)動的軟件調(diào)用來 實現(xiàn)??刂破鲉卧?04形成發(fā)送給第二應(yīng)用的端點的以太網(wǎng)數(shù)據(jù)分組,并使該以太網(wǎng)數(shù)據(jù) 分組被封裝在一個或更多個尋址的互連數(shù)據(jù)分組中,以便使該互連數(shù)據(jù)分組被路由給處理 器503的控制器單元505。互連數(shù)據(jù)分組在處理器間直接路由,不經(jīng)過媒體接口。如果需 要,控制器單元504被配置為為以太網(wǎng)數(shù)據(jù)分組形成Eol頭部。在處理器503的去串行電 路處,提取以太網(wǎng)數(shù)據(jù)分組,并且控制器單元將該數(shù)據(jù)寫入與該數(shù)據(jù)分組的目的地以太網(wǎng) 地址對應(yīng)的接收隊列。因此,在處理器502處執(zhí)行的第一應(yīng)用可以僅僅以就像第二應(yīng)用通過網(wǎng)絡(luò)510在 遠程數(shù)據(jù)處理系統(tǒng)的處理器處執(zhí)行一樣的方式,來向在處理器503處執(zhí)行的第二應(yīng)用發(fā)送 數(shù)據(jù)。然而,因為通過處理器間的CPU互連來攜帶以太網(wǎng)數(shù)據(jù)分組,數(shù)據(jù)使用低延遲、高帶 寬數(shù)據(jù)通道。注意,圖5a僅是示意性的,數(shù)據(jù)處理器系統(tǒng)501的各組件間的鏈接可采用任 何適當?shù)呐渲?。在圖5b中,數(shù)據(jù)處理系統(tǒng)511包括兩個處理器512、513,它們的每一個具有控制器 單元514、515。該實現(xiàn)與在圖5a中所示的那個類似,但是在該例中,媒體接口 518是在外圍 數(shù)據(jù)總線517上支持的外圍設(shè)備,外圍數(shù)據(jù)總線可以是PCIe數(shù)據(jù)總線。因此,需要I/O集線 器或交換機516來提供外圍數(shù)據(jù)總線和每個處理器之間的接口。在處理器512和514之間 的通信優(yōu)選地僅以如上圖5a所述的相同方式通過互連結(jié)構(gòu)519 (例如HyperTransport)直 接實現(xiàn)。然而,在處理器512和媒體接口 518之間的互連由兩條鏈路組成在處理器和I/O 集線器之間的CPU數(shù)據(jù)總線520 (它可以是諸如HyperTransport這樣的CPU互連,或者是 諸如處理器512的前側(cè)總線這樣的其他類型的數(shù)據(jù)總線),和在I/O集線器和媒體接口之間 的諸如PCIe這樣的外圍數(shù)據(jù)總線。目的地為媒體接口的互連數(shù)據(jù)分組被發(fā)送到CPU數(shù)據(jù) 總線上,然后在I/O集線器處被轉(zhuǎn)換為適合于在PCIe總線上傳輸?shù)臄?shù)據(jù)分組。優(yōu)選地,CPU 數(shù)據(jù)總線是CPU互連,并且最優(yōu)地,I/O集線器可由處理器通過該CPU互連訪問。參考圖2如上所述,包括與在外圍數(shù)據(jù)總線處支持的媒體接口一起形成部分網(wǎng)絡(luò) 接口設(shè)備的控制器單元的處理器自身可包括適當?shù)腟ERDES電路,以使該處理器能直接從 外圍數(shù)據(jù)總線和向外圍數(shù)據(jù)總線讀和寫。在外圍數(shù)據(jù)總線是PCIe數(shù)據(jù)總線的情況下,控制 器單元自身可以是通過PCIe數(shù)據(jù)總線可尋址的PCIe設(shè)備。如果處理器/控制器單元可通 過外圍數(shù)據(jù)總線直接通信,則不需要I/O集線器,因為為了與媒體接口通信,控制器單元可 以直接將封裝了以太網(wǎng)數(shù)據(jù)的適當數(shù)據(jù)分組發(fā)送到外圍數(shù)據(jù)總線上。包括被配置為與媒體 接口和一個或更多個包括控制器單元的處理器通信的控制器單元的處理器,因此能夠依賴于數(shù)據(jù)分組的目的地,將以太網(wǎng)數(shù)據(jù)分組封裝在適合于通過CPU互連或外圍數(shù)據(jù)總線發(fā)送 的數(shù)據(jù)分組中。圖5b僅是示意性的每個處理器可具有它自己的I/O集線器,并且在數(shù)據(jù)處理系 統(tǒng)511的各組件間的鏈路可以采取任何適當?shù)呐渲?。注意,由于在同一?shù)據(jù)處理系統(tǒng)處的控制器單元(例如在多處理器計算機系統(tǒng)處 的處理器或刀片式服務(wù)器的刀片)間的數(shù)據(jù)傳輸不經(jīng)過媒體接口,封裝后的網(wǎng)絡(luò)數(shù)據(jù)分組 在到達目的地控制器單元前(校驗和和其他卸載可在媒體接口處完成)可以不根據(jù)鏈路層 網(wǎng)絡(luò)協(xié)議被完全地形成。分離PCIe設(shè)備現(xiàn)在將描述一種新穎的分離PCIe設(shè)備結(jié)構(gòu),它是用于根據(jù)本發(fā)明配置的PCIe網(wǎng) 絡(luò)接口設(shè)備的優(yōu)選結(jié)構(gòu)。如果由控制器單元和媒體接口形成的網(wǎng)絡(luò)接口設(shè)備對于數(shù)據(jù)處理系統(tǒng)(和在其 上運行的軟件)來說是常規(guī)的PCIe設(shè)備,這種情況是有益的。這對維護與現(xiàn)有軟件和硬件 的兼容性有幫助。在本發(fā)明的一些實施例中,在處理器處沒有提供PCIe主機電路,因此沒 有為控制器單元提供任何PCIe邏輯。為了給這種數(shù)據(jù)處理系統(tǒng)提供PCIe網(wǎng)絡(luò)接口設(shè)備, 向媒體接口提供PCIe邏輯。圖6顯示了包括PCIe設(shè)備601 (它可以不是網(wǎng)絡(luò)接口設(shè)備)的數(shù)據(jù)處理系統(tǒng)600, PCIe設(shè)備601具有兩個部分在處理器603處的控制器單元602和在PCIe數(shù)據(jù)總線605上 支持的接口單元604。PCIe數(shù)據(jù)總線典型地可由處理器借助于I/O集線器608訪問??刂?器單元602包括PCIe設(shè)備的至少部分邏輯功能組,并被配置為借助于處理器的適當?shù)墓δ?(例如存儲器管理單元)訪問存儲器606。優(yōu)選地,控制器單元也能夠訪問處理器的高速緩 存607,高速緩存607被配置為存儲在存儲器606中保存的某些數(shù)據(jù)的副本。處理器的高速 緩存可以被認為在它的存儲器管理單元(處理器的提供到主機存儲器的訪問的部分)處。 在處理器處提供該設(shè)備的那些功能是有益的,該設(shè)備得益于對主機存儲器606和處理器高 速緩存607的低延遲訪問。就接口單元604物理上在PCIe數(shù)據(jù)總線處被支持的意義來說,接口單元604是 PCIe設(shè)備,它能夠借助于它的PCIe主機邏輯通過PCIe數(shù)據(jù)總線通信??刂破鲉卧?02被 配置為支持一個或更多個控制范圍(controlaperture)??刂品秶且粋€設(shè)備負責的物理 地址范圍,換句話說,在數(shù)據(jù)處理系統(tǒng)處運行的軟件可以通過從和向在設(shè)備的控制范圍內(nèi) 的地址讀和寫來與該設(shè)備交互。接口單元604被配置為支持一個或更多個基地址寄存器(BaseAddress Register, BAR),基地址寄存器根據(jù)PCI Express規(guī)范來表示PCIe設(shè)備的控制范圍。稱為 BAR的基地址寄存器標識控制范圍的開始地址。在接口單元處支持的BAR中的至少一個 的基地址被配置為位于控制器單元的控制范圍內(nèi),使得在數(shù)據(jù)處理系統(tǒng)處運行的軟件讀或 寫由接口單元的BAR表示的地址范圍時,那些讀或?qū)憣嶋H上被發(fā)送給控制器單元的控制范 圍。換句話說,由接口單元表示的(被分配給它的)物理地址范圍的至少一部分實際上被 分配給控制器單元。由于在數(shù)據(jù)處理系統(tǒng)處運行的主機軟件從PCIe設(shè)備的BAR獲取該設(shè) 備的控制范圍的地址范圍,該主機軟件將使用分配給該控制器單元的地址范圍來與由控制 器單元和接口單元兩者形成的PCIe設(shè)備交互。
典型地,支持PCIe設(shè)備的數(shù)據(jù)處理系統(tǒng)的基本輸入/輸出系統(tǒng)(BIOS)分配將被 系統(tǒng)中的每個設(shè)備用作控制范圍的地址范圍,并且當需要使用它們時對每個設(shè)備進行編 程。這些操作可在數(shù)據(jù)處理系統(tǒng)啟動時進行??刂破鲉卧獌?yōu)選地被配置為處理PCIe接口單元的中斷。由于主機軟件程序在外 圍PCIe設(shè)備(在該例中接口單元)處進行設(shè)備中斷的配置,因此這可以通過配置接口單元 向控制器單元轉(zhuǎn)發(fā)對它的中斷寄存器的更新來實現(xiàn),從而使控制器單元能直接在處理器自 身處引發(fā)中斷。可以做出進一步的規(guī)定來允許上述分離PCIe設(shè)備支持傳統(tǒng)的I/0BAR。傳統(tǒng)的I/ 0 BAR允許PCIe設(shè)備能向后兼容指向傳統(tǒng)設(shè)備地址范圍的傳統(tǒng)讀和寫。這可以通過將接口 單元配置為提供在控制器單元的控制范圍上指向傳統(tǒng)I/O BAR的間接的讀和寫來處理。傳統(tǒng)I/O BAR的寄存器被設(shè)置為接收對網(wǎng)絡(luò)接口設(shè)備的傳統(tǒng)寄存器的讀和寫,并 將那些讀和寫映射為對控制單元的控制范圍的讀和寫。對接口單元的傳統(tǒng)寄存器的讀和寫 到對控制器單元的控制范圍的讀和寫的映射可以是直接對應(yīng)關(guān)系、間接映射或其他映射。 可以有分開的每次讀和寫的間接性,或者對傳統(tǒng)I/O BAR寄存器的每次讀和寫的事實上的 多次間接性。因此,在此所述的對接口單元的傳統(tǒng)寄存器的傳統(tǒng)讀和寫變成通過PCIe總線(以 及可能附加的達到處理器的互連鏈路)對控制器單元的存儲器讀或?qū)?。這避免了在接口單 元處對被配置為處理傳統(tǒng)I/O讀的邏輯的需要,使控制器單元能維護對PCIe設(shè)備的讀和寫 控制。接口單元可以是支持一個或更多個物理功能(physical function, PF)和虛擬功 能(virtual function, VF)的單根輸入/輸出虛擬化(SR-IOV)或多根輸入/輸出虛擬化 (MR-IOV) PCIe 設(shè)備。對于多處理器數(shù)據(jù)處理系統(tǒng)或刀片式服務(wù)器中特定類型的分離PCIe設(shè)備,接口 單元可被配置為支持多個控制器單元,其中每個控制器單元位于不同的處理器處。接口單 元604因此被配置為為每個控制器單元支持一個或更多個BAR,特定控制器單元的至少一 個BAR的基地址被配置為位于那個控制器單元的控制范圍內(nèi)。類似地,接口單元可被配置 為以上述方式為多個控制器單元處理傳統(tǒng)的I/O BAR。注意,接口單元優(yōu)選地進一步支持設(shè)備的配置訪問、VPD(VitalProduCt Data,重要產(chǎn)品數(shù)據(jù))和引導(dǎo)ROM (boot ROM)。當應(yīng)用于根據(jù)本發(fā)明配置的PCIe網(wǎng)絡(luò)接口設(shè)備時,接口單元604是媒體接口,控制器單元602是控制器單元。在本發(fā)明的優(yōu)選實施例中,參考圖2-9在此描述的控制器單 元和媒體接口是具有分離PCIe設(shè)備結(jié)構(gòu)的PCIe設(shè)備。在處理器處控制器單元的實現(xiàn)在圖7中展示了在處理器處控制器單元的優(yōu)選實現(xiàn)的示意圖。如在圖2和3中所 述那樣,控制器單元702被配置為處理發(fā)送和接收操作的邏輯方面,是由控制器單元和媒 體接口形成的網(wǎng)絡(luò)接口設(shè)備的控制器,媒體接口提供到網(wǎng)絡(luò)的物理訪問??刂破鲉卧?02 在處理器701處得以支持,處理器701是數(shù)據(jù)處理系統(tǒng)的中央處理單元(CPU),因此能夠訪 問主機存儲器703和借助于其可訪問該數(shù)據(jù)處理器系統(tǒng)的設(shè)備(例如在外圍數(shù)據(jù)總線上的 媒體接口)的至少一個數(shù)據(jù)總線709 (例如CPU互連)。存儲器703可由處理器通過專用數(shù)據(jù)總線708訪問。其他存儲器可由處理器通過數(shù)據(jù)總線709訪問。數(shù)據(jù)總線708和709可 以是同一條數(shù)據(jù)總線。注意,處理器701可包括共享單個控制器單元702的多個處理核??刂破鲉卧M一步包括封裝電路711,封裝電路711被配置為執(zhí)行(a)將在控制器 單元處形成的網(wǎng)絡(luò)數(shù)據(jù)分組封裝在適合于通過數(shù)據(jù)總線709發(fā)送的數(shù)據(jù)分組中,和(b)從 通過數(shù)據(jù)總線709接收的數(shù)據(jù)分組中提取網(wǎng)絡(luò)數(shù)據(jù)分組。網(wǎng)絡(luò)數(shù)據(jù)分組的這種封裝和提取 根據(jù)參考圖4所示的Eol協(xié)議得以執(zhí)行。處理器701優(yōu)選地包括至少一個高速緩存705,高速緩存705被配置為存儲保持在 包括703的主機存儲器中的數(shù)據(jù)的副本。處理器的高速緩存705可被認為位于存儲器管理 單元704。高速緩存為處理器提供在它的運行期間對所需數(shù)據(jù)的低延遲訪問。最優(yōu)地,高速 緩存是由CPU的所有處理核共享的片上高速緩存。將處理器配置為使控制器單元能夠訪問 高速緩存705以便控制器單元甚至能夠比通過存儲器總線708更低延遲地訪問數(shù)據(jù),這是 有益的。由于處理器支持軟件應(yīng)用線程以及處理形成數(shù)據(jù)分組所依據(jù)的網(wǎng)絡(luò)協(xié)議的網(wǎng)絡(luò) 棧,CPU通常執(zhí)行被形成為用于通過網(wǎng)絡(luò)傳輸?shù)木W(wǎng)絡(luò)數(shù)據(jù)分組的數(shù)據(jù)和協(xié)議處理中的至少 一些。這種軟件網(wǎng)絡(luò)棧典型地在將部分形成的數(shù)據(jù)分組傳遞給網(wǎng)絡(luò)接口設(shè)備以完成較低層 (例如以太網(wǎng))上的網(wǎng)絡(luò)數(shù)據(jù)分組和硬件卸載(例如TCP校驗和卸載)之前,在OSI模型的 較高層執(zhí)行數(shù)據(jù)分組(例如TCP/IP數(shù)據(jù)分組)的初始形成。由于CPU的高速緩存典型地 包括處理器頻繁或最近使用的數(shù)據(jù),因此有好的可能性控制器單元完成給定網(wǎng)絡(luò)數(shù)據(jù)分 組所需的至少一些數(shù)據(jù)將在該高速緩存中找到。結(jié)果,如果控制器單元702被配置為,當從主機存儲器請求數(shù)據(jù)時,為該數(shù)據(jù)首先 訪問高速緩存,如果在高速緩存處未找到該數(shù)據(jù),則隨后從主機存儲器中讀取該數(shù)據(jù),這是 有益的。特別地,如果控制器單元被配置為為保存在主機存儲器中的發(fā)送隊列處的分組數(shù) 據(jù)而首先訪問高速緩存,這是優(yōu)選的。控制器單元優(yōu)選地被配置為,如果該控制器單元所需 的分組數(shù)據(jù)未在高速緩存處找到,則當該分組數(shù)據(jù)從主機存儲器中被讀取時不被復(fù)制入高 速緩存605。因為一旦發(fā)送數(shù)據(jù)被發(fā)送,控制器單元或處理器通常不再需要它,這避免了用 后續(xù)不太可能需要的數(shù)據(jù)污染高速緩存??刂破鲉卧獌?yōu)選地被配置為,如果在高速緩存處 找到該控制器單元所需的分組數(shù)據(jù),則使該高速緩存中該分組數(shù)據(jù)所駐存的高速緩存線無 效。由于控制器單元或處理器不太可能后續(xù)需要該分組數(shù)據(jù),因此這釋放了高速緩存中的 空間,并避免了將分組數(shù)據(jù)寫回主機存儲器,節(jié)約了總線和存儲器帶寬。最優(yōu)地,是否無效 高速緩存線的決定在軟件的控制下作出。類似地,一旦通過網(wǎng)絡(luò)接收到數(shù)據(jù)分組,典型地由網(wǎng)絡(luò)接口設(shè)備在將分組中的數(shù) 據(jù)寫入主機存儲器之前,在較低網(wǎng)絡(luò)協(xié)議層上處理接收的數(shù)據(jù)分組,以使在處理器處執(zhí)行 的軟件網(wǎng)絡(luò)棧能完成所接收數(shù)據(jù)分組的協(xié)議處理。因此,軟件網(wǎng)絡(luò)棧的一個或更多個進程 在網(wǎng)絡(luò)棧執(zhí)行該數(shù)據(jù)分組的協(xié)議處理時,可能訪問所接收數(shù)據(jù)分組的數(shù)據(jù)。因此,如果控制 器單元被配置為一旦向主機存儲器寫入接收的分組數(shù)據(jù),就將該數(shù)據(jù)的至少一些寫入隨后 在處理器處執(zhí)行的進程(比在主機存儲器中)能更高效地訪問的高速緩存中,這是有益的。 控制器單元可被配置為僅向高速緩存寫入所接收數(shù)據(jù)分組的所選部分,該選擇優(yōu)選地由該 數(shù)據(jù)分組所根據(jù)的協(xié)議來確定。所接收數(shù)據(jù)分組的所選部分可以是該數(shù)據(jù)分組的頭部???制器單元可以被配置為,對于預(yù)定網(wǎng)絡(luò)協(xié)議組的數(shù)據(jù)分組,不將這些數(shù)據(jù)分組的任何部分寫入高速緩存。最優(yōu)地,控制器單元由管理軟件根據(jù)在數(shù)據(jù)處理系統(tǒng)上運行的軟件進程的 配置來配置。特別地與控制數(shù)據(jù)相關(guān),控制器單元優(yōu)選地被配置為,當進行控制數(shù)據(jù)的讀取時 首先訪問高速緩存,并且當向主機存儲器進行控制數(shù)據(jù)的寫時將控制數(shù)據(jù)寫入高速緩存。 控制數(shù)據(jù)可包括描述符、通知事件和來自地址轉(zhuǎn)換表和轉(zhuǎn)發(fā)表的數(shù)據(jù)。轉(zhuǎn)發(fā)表典型地包括 確定網(wǎng)絡(luò)接口設(shè)備如何處理(a)接收的網(wǎng)絡(luò)數(shù)據(jù)分組(即應(yīng)當將所接收數(shù)據(jù)分組的數(shù)據(jù)傳 遞給哪個(哪些)接收隊列,和/或應(yīng)當將該數(shù)據(jù)分組發(fā)送給哪些其他網(wǎng)絡(luò)設(shè)備)和(b) 用于發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)分組(例如向數(shù)據(jù)分組寫入哪些目的地地址信息,以使該數(shù)據(jù)分組被 路由至適當?shù)亩它c)的信息。優(yōu)選地,控制器單元所需的轉(zhuǎn)發(fā)表706和地址轉(zhuǎn)換表707存 儲在主機存儲器703處,而不是控制器單元的專用存儲器處。這使控制器單元能在處理器 模上占用較少的空間,并且由于控制器單元能訪問到主機存儲器和高速緩存的處理器的低 延遲連接,因此不會對網(wǎng)絡(luò)接口設(shè)備的性能產(chǎn)生負面影響。一般來說,控制器單元在主機存 儲器中存儲它的狀態(tài)。作為另一種方式,可以為控制器單元提供它自己的專用的等級1高 速緩存710,在高速緩存710中存儲由控制器單元處理的數(shù)據(jù)流的控制數(shù)據(jù)。對于在外圍數(shù)據(jù)總線處支持的傳統(tǒng)網(wǎng)絡(luò)接口設(shè)備,數(shù)據(jù)處理系統(tǒng)的物理和虛擬域 之間的存儲器地址轉(zhuǎn)換通常在網(wǎng)絡(luò)接口設(shè)備和主機存儲器之間的數(shù)據(jù)通路上的I/O存儲 器管理單元(IOMMU)處執(zhí)行。由于控制器單元位于處理器處而不在外圍設(shè)備處,IOMMU(如 果存在的話)不在控制器單元和主機存儲器之間。因此,優(yōu)選地,控制器單元被配置為將處 理器的存儲器管理單元(MMU) 704用于地址轉(zhuǎn)換。存儲器管理單元被配置為為控制器單元 發(fā)出的從主機存儲器和向主機存儲器的讀和寫進行存儲器地址轉(zhuǎn)換。為控制器單元提供對 MMU的訪問,使得控制器單元能夠處理虛擬存儲器地址。這意味著可信軟件域(例如內(nèi)核或 系統(tǒng)管理程序)和不可信軟件域(例如訪客操作系統(tǒng)或應(yīng)用)都可向控制器單元標識主機 存儲器緩沖(例如發(fā)送隊列),因為控制器單元既能夠使用物理的又能夠使用虛擬的存儲 器地址。并且,為控制器單元提供對處理器的MMU的訪問,避免了需要控制器單元管理分離 的I/O地址空間,并簡化了在虛擬化系統(tǒng)和利用用戶級聯(lián)網(wǎng)的系統(tǒng)中不可信軟件域的直接 設(shè)備訪問的實現(xiàn)。為了使MMU能代表控制器單元進行地址轉(zhuǎn)換,控制器單元維護由控制器單元表示 的物理網(wǎng)絡(luò)接口設(shè)備的每個虛擬網(wǎng)絡(luò)接口設(shè)備(VNIC)與為其分配了 VNIC的各個虛擬化域 的地址空間之間的對應(yīng)關(guān)系。這使控制器單元能夠向MMU標識存儲器讀或?qū)懪c哪個虛擬地 址空間相關(guān)。為了避免設(shè)備在主機存儲器的發(fā)送隊列中改寫(overwrite)數(shù)據(jù),數(shù)據(jù)處理系統(tǒng) 通常被配置為,當用于發(fā)送的數(shù)據(jù)已被寫入存儲器的頁面時鎖定(Pin)該頁面。這預(yù)留了 存儲器頁面,并防止了頁面被重分配。這種鎖定對由根據(jù)本發(fā)明配置的網(wǎng)絡(luò)接口設(shè)備執(zhí)行 的發(fā)送操作來說不是必要的。優(yōu)選地替代地,不執(zhí)行存儲器鎖定,并且如果地址轉(zhuǎn)換失敗 (例如因為已向存儲設(shè)備的頁面文件寫入存儲器頁面,并且該頁面被重分配),MMU被配置 為產(chǎn)生一個錯誤,來指示在主機存儲器中不存在虛擬地址。因此,轉(zhuǎn)換失敗被處理器作為頁 面故障而被處理。這允許通過以下方式在數(shù)據(jù)處理系統(tǒng)中處理轉(zhuǎn)換過程中的失敗。當控制器單元對 在主機存儲器處的發(fā)送隊列數(shù)據(jù)發(fā)出由MMU轉(zhuǎn)換的讀,并且該轉(zhuǎn)換失敗時,MMU在控制器單元處為所述讀相關(guān)的存儲器頁面產(chǎn)生頁面故障錯誤。在響應(yīng)中,控制器單元暫停與所述讀 相關(guān)的發(fā)送操作關(guān)聯(lián)的發(fā)送隊列,并向軟件實體(典型地是網(wǎng)絡(luò)接口設(shè)備的設(shè)備驅(qū)動)發(fā) 送通知。軟件使該頁面在存儲器中可獲得(這典型地由數(shù)據(jù)處理系統(tǒng)的特權(quán)模式軟件實體 (例如部分內(nèi)核或系統(tǒng)管理軟件)來處理)。一旦使頁面可獲得,處理發(fā)送操作的軟件解除 暫停發(fā)送隊列,并使控制器單元重新嘗試發(fā)出讀,并繼續(xù)在發(fā)送隊列處處理數(shù)據(jù)。通過減少需要鎖定的存儲器量,管理主機存儲器的特權(quán)軟件(例如內(nèi)核或系統(tǒng)管 理軟件)具有更多自由以將存儲器外的頁面寫回數(shù)據(jù)存儲(例如在非易失性存儲設(shè)備處的 頁面文件)中。上述機制不會給MMU引入任何附加的復(fù)雜度,并且由于不需要鎖定操作,減 少了復(fù)雜度和發(fā)送通路上的CPU開銷。通過在在數(shù)據(jù)目標地址轉(zhuǎn)換失敗的情況下能將在控制器單元處接收的數(shù)據(jù)寫入 到的主機存儲器處維護經(jīng)鎖定的接收緩沖池,也可以在接收操作期間最小化在主機存儲器 處的緩沖鎖定。這消除了鎖定主機存儲器處接收隊列的頁面的需要。優(yōu)選地,當控制器單 元向主機存儲器中的接收隊列發(fā)布所接收分組數(shù)據(jù)的寫并且對該接收隊列的目的地址轉(zhuǎn) 換在MMU處失敗時,接收的分組數(shù)據(jù)被寫入主機存儲器中的被預(yù)留作為不能立即被寫入適 當?shù)慕邮贞犃械乃邮諗?shù)據(jù)分組的回退(fall back)的另選緩沖中。這是重要的,因為不 像分組發(fā)送的情況,不可能暫停接收隊列,直到地址轉(zhuǎn)換成功——任何時候都可能接收到 接收隊列的新數(shù)據(jù)分組。在將接收的數(shù)據(jù)分組寫入另選緩沖后,控制器單元繼續(xù)處理接收 的數(shù)據(jù)分組,為了將接收的數(shù)據(jù)復(fù)制到它各自的接收隊列中而適當時發(fā)布寫請求。當?shù)刂忿D(zhuǎn)換失敗時,由控制器單元通知在數(shù)據(jù)處理系統(tǒng)中處理接收操作的軟件, 并通過重新分配由各個接收隊列使用的一個或更多個存儲器頁面來作出響應(yīng)。為了處理沒 有被寫入它的接收隊列的所接收數(shù)據(jù)分組,該軟件還訪問另選緩沖。對于數(shù)據(jù)處理系統(tǒng)的 每個軟件域可能有一組經(jīng)鎖定的另選緩沖。媒體接口的實現(xiàn)參考如上所述的圖2和3,媒體接口為控制器單元提供到網(wǎng)絡(luò)的物理接口。媒體接 口可以在諸如PCIe這樣的外圍數(shù)據(jù)總線上得以支持,或者可以借助于CPU互連直接與包括 控制器單元的處理器相耦合。由于在控制器單元和媒體接口之間的互連上采用了基于分組 的路由,單一的媒體接口優(yōu)選地可操作來支持多個控制器單元的發(fā)送和接收操作。圖8展示了根據(jù)本發(fā)明配置的媒體接口的示意圖。媒體接口 801包括被配置為 通過網(wǎng)絡(luò)803執(zhí)行數(shù)據(jù)分組的物理傳送的PHY 802,和被配置為使媒體接口能夠通過數(shù)據(jù) 總線809傳送網(wǎng)絡(luò)數(shù)據(jù)分組的封裝電路805。封裝電路805被配置為執(zhí)行(a)將通過網(wǎng)絡(luò) 接收的網(wǎng)絡(luò)數(shù)據(jù)分組封裝在適合于通過數(shù)據(jù)總線809發(fā)送給控制器單元的數(shù)據(jù)分組中,和 (b)從通過數(shù)據(jù)總線809從控制器單元接收的數(shù)據(jù)分組中提取用于通過網(wǎng)絡(luò)發(fā)送的網(wǎng)絡(luò)數(shù) 據(jù)分組。根據(jù)參考圖4的上述Eol協(xié)議進行網(wǎng)絡(luò)數(shù)據(jù)分組的這種封裝和提取。如果媒體接口包括用于網(wǎng)絡(luò)接口設(shè)備的管理控制器806,這是有益的。管理控制 器使網(wǎng)絡(luò)接口設(shè)備能夠借助于通過網(wǎng)絡(luò)接收的命令被遠程地管理。通過在媒體接口處設(shè) 置管理控制器,管理控制器可以在處理器被斷電的數(shù)據(jù)處理系統(tǒng)的低功率狀態(tài)期間保持有 電。管理控制器可以被配置為與在父親數(shù)據(jù)處理系統(tǒng)的基板處的基板管理控制器(BMC)通 信。這使得數(shù)據(jù)處理系統(tǒng),如現(xiàn)有技術(shù)中眾所周知的那樣,能夠被通過網(wǎng)絡(luò)接收的命令遠程 管理。在具有共享媒體接口的多個控制器單元的系統(tǒng)中,管理控制器806被配置為代表所有控制器單元處理管理命令。對于校驗和的計算來說,通常將其卸載到它們能在諸如狀態(tài)機這樣的專用電路中 高效地被執(zhí)行的外圍網(wǎng)絡(luò)接口設(shè)備。媒體接口優(yōu)選地包括被配置為執(zhí)行適合于在網(wǎng)絡(luò)上使 用的網(wǎng)絡(luò)協(xié)議的校驗和計算的電路807,例如,對于以太網(wǎng)網(wǎng)絡(luò),校驗和可以是32位的CRC 校驗和。通常,媒體接口執(zhí)行特定于在網(wǎng)絡(luò)上使用的網(wǎng)絡(luò)協(xié)議(例如以太網(wǎng))的功能。大 多數(shù)其它功能在控制器單元處得以完成。然而,特定的邏輯操作在靠近物理網(wǎng)絡(luò)端口 804 的媒體接口處得以完成,這通常是有益的。為了給出一些示例,對于以下協(xié)議,控制器單元 和媒體接口之間的功能組劃分是優(yōu)選地i.諸如IEEE 802. IQbb (每優(yōu)先級暫停,Per-Priority Pause)這樣的鏈路層流量 控制優(yōu)選地在媒體接口處進行;ii. IEEE 802. IQaz (增強型傳輸選擇,Enhanced Transmission Selection)優(yōu)選 地在控制器單元處完成;iii. IEEE 802. IQau(擁塞通知,Congestion Notification)優(yōu)選地既在控制器單 元又在媒體接口處完成。優(yōu)選地,其他功能和任何從在父親數(shù)據(jù)處理系統(tǒng)上運行的軟件網(wǎng)絡(luò)棧卸載的協(xié)議 處理在控制器單元處進行。這包括a.用于協(xié)議(例如IP、TCP、UDP、iSCSI和通過以太網(wǎng)的光纖信道(Fibre Channel over Ethernet, FCoE))的校驗和卸載b.為iWARP結(jié)構(gòu)處理的TCP卸載c. iSCSI、FCoE 卸載d. TCP 分段卸載(TCP segmentation offloading, TS0),大接收卸載(large receive offload, LR0)和接收側(cè)調(diào)節(jié)(receive side scaling, RSS)e. NIC 虛擬化在一些實施例中,媒體接口不包括PHY,該PHY替代地可由媒體接口通過接口訪問 并控制。例如,媒體接口可與支持包括控制器單元的處理器的芯片集(例如,在1/0集線器 處)集成在一起,PHY可位于數(shù)據(jù)處理系統(tǒng)的物理網(wǎng)絡(luò)端口處。這種媒體接口如在此所述那 樣運行,但在與媒體接口集成電路本身分離的PHY處的媒體接口的控制下執(zhí)行物理傳送。對刀片式服務(wù)器的應(yīng)用根據(jù)本發(fā)明配置的分離網(wǎng)絡(luò)接口設(shè)備,在刀片式服務(wù)器中有特殊的應(yīng)用。刀片式 服務(wù)器是具有多個刀片的模塊化計算機系統(tǒng),每個刀片支持一個或更多個處理器、存儲器 和用于與其他刀片和機架通信的1/0接口。通常,每個刀片的1/0接口由網(wǎng)絡(luò)控制器利用 諸如IEEE 10GBASE-KR接口這樣的高速串行數(shù)據(jù)接口在物理層提供。機架典型地支持交換 機以連接刀片和為刀片式服務(wù)器的刀片提供到更寬網(wǎng)絡(luò)的訪問。作為另一種方式,每個刀 片的1/0接口可由諸如PCIe這樣的外圍數(shù)據(jù)總線來提供,并且刀片共享位于機架的一個或 更多個網(wǎng)絡(luò)控制器。在這種刀片式服務(wù)器中,網(wǎng)絡(luò)控制器典型地是PCIe MR-IOV設(shè)備。每個刀片本身是一個數(shù)據(jù)處理系統(tǒng)并且能支持一個或更多個操作系統(tǒng)——通常 刀片具有虛擬化結(jié)構(gòu),在該結(jié)構(gòu)中有多個由特權(quán)模式軟件域(例如系統(tǒng)管理軟件)支持的 訪客操作系統(tǒng)(例如虛擬機)。因此,一個單獨的刀片式服務(wù)器可以支持多個操作系統(tǒng),每個操作系統(tǒng)反過來可以支持希望與在刀片中的其他處理器處、在其他刀片上的處理器處或 者在通過網(wǎng)絡(luò)可訪問的其他服務(wù)器或刀片式服務(wù)器上執(zhí)行的其他應(yīng)用進行通信的多個應(yīng)用。圖9展示了根據(jù)本發(fā)明配置的刀片式服務(wù)器的示意圖。刀片式服務(wù)器900包括多 個刀片901、914,每個刀片具有包括控制器單元702的一個或更多個處理器701。刀片還包 括處理器可訪問的一個或更多個存儲器703。刀片在包括媒體接口 801的機架902處得以 支持,媒體接口 801可操作來提供到網(wǎng)絡(luò)913的訪問。媒體接口被配置為為刀片式服務(wù)器 的多個刀片提供到網(wǎng)絡(luò)913的訪問。換句話說,在該服務(wù)器的任何刀片上的任何處理器中 的控制器單元可被配置為借助于媒體接口來通信。機架902可以包括多個媒體接口,每個 媒體接口可例如提供到不同網(wǎng)絡(luò)或子網(wǎng)的訪問。多處理器刀片的處理器通過諸如HyperTransport或QPI這樣的CPU互連相連接。 這使得控制器單元能借助于高速CPU互連直接地互相通信,如參考圖5a所述那樣。媒體接 口在還形成了刀片式服務(wù)器的刀片間的互連的、諸如PCIe這樣的刀片式服務(wù)器的數(shù)據(jù)總 線916處得以支持。每個刀片可包括一個或更多個I/O集線器909,以使每個處理器能通過 數(shù)據(jù)總線通信。最優(yōu)地,每個處理器支持到數(shù)據(jù)總線的一個接口,在該情況下不需要I/O集 線器909。通過向媒體接口提供標識每個控制器單元支持的網(wǎng)絡(luò)端點組的一個或更多個轉(zhuǎn) 發(fā)表,媒體接口可被配置為在刀片式服務(wù)器的不同刀片上的網(wǎng)絡(luò)端點間進行數(shù)據(jù)的內(nèi)部路 由。例如,如果數(shù)據(jù)總線是PCIe數(shù)據(jù)總線,媒體接口可以是被配置為支持多個PCIe根(典 型地每個刀片一個)的MR-IOV PCIe設(shè)備。一旦通過PCIe總線從在第一刀片處的控制器 單元接收到在第二刀片的處理器處支持的網(wǎng)絡(luò)端點的Eol封裝網(wǎng)絡(luò)數(shù)據(jù)分組,媒體接口將 使用轉(zhuǎn)發(fā)表確定該網(wǎng)絡(luò)節(jié)點在第二刀片的控制單元處得以支持,然后通過PCIe數(shù)據(jù)總線 將該網(wǎng)絡(luò)數(shù)據(jù)分組路由給那個控制器單元。以這種方式,媒體接口可在刀片式服務(wù)器的刀 片之間以及網(wǎng)絡(luò)和刀片之間的網(wǎng)絡(luò)協(xié)議層(例如鏈路層以太網(wǎng))上處理數(shù)據(jù)分組的路由。然而,為了進行刀片式服務(wù)器的刀片間數(shù)據(jù)的內(nèi)部路由,如果在機架處提供數(shù)據(jù) 總線交換機911而不是讓媒體接口進行刀片間路由,這是優(yōu)選的。這意味著刀片式服務(wù)器 的刀片間的內(nèi)部數(shù)據(jù)傳輸并不一定要經(jīng)過媒體接口到數(shù)據(jù)總線的連接,如果媒體接口被配 置為進行所有的路由,這是一個特殊的瓶頸。優(yōu)選地,數(shù)據(jù)總線是PCIe數(shù)據(jù)總線,交換機 是PCIe交換機。與在單獨的PCIe設(shè)備(例如媒體接口)處或在網(wǎng)絡(luò)913上的邊緣交換機 處的數(shù)據(jù)處理系統(tǒng)外部(例如如果刀片式服務(wù)器根據(jù)虛擬以太網(wǎng)端口聚合協(xié)議(Virtual Ethernet Port Aggregator Protocol)或VEPA被配置)執(zhí)行交換相比,PCIe交換機能夠 提供非常大的帶寬。在第一實施例中,數(shù)據(jù)總線交換機911被配置為,依賴于在數(shù)據(jù)總線分組的頭部 的地址信息(即在數(shù)據(jù)總線上使用的數(shù)據(jù)協(xié)議的層級上)在數(shù)據(jù)總線916上進行數(shù)據(jù)分組 的路由。由于該路由由交換機在數(shù)據(jù)總線協(xié)議的層級上進行,內(nèi)部數(shù)據(jù)傳輸?shù)难舆t得以改 善。然而,這種設(shè)置需要每個控制器單元702的每個轉(zhuǎn)發(fā)表706包括刀片式服務(wù)器的每個 控制器單元的設(shè)備地址和由每個控制器單元支持的網(wǎng)絡(luò)端點的地址之間的對應(yīng)關(guān)系。這使 得每個控制器單元能夠確定是否特定的網(wǎng)絡(luò)端點在刀片式服務(wù)器處被支持,能夠?qū)⑼ㄟ^數(shù) 據(jù)總線發(fā)送的每個數(shù)據(jù)分組相應(yīng)地尋址。
例如,假設(shè)在第一刀片的處理器處的應(yīng)用有數(shù)據(jù)要發(fā)送給在第二刀片的處理器處 的應(yīng)用,刀片和媒體接口由PCIe數(shù)據(jù)總線互連并提供到以太網(wǎng)網(wǎng)絡(luò)的接口。第一處理器的 控制器單元形成發(fā)送給在第二刀片的處理器處的應(yīng)用的端點的以太網(wǎng)數(shù)據(jù)分組。在形成封 裝以太網(wǎng)數(shù)據(jù)分組的一個或更多個Eol PCIe數(shù)據(jù)分組時,控制器單元將在它的轉(zhuǎn)發(fā)表中查 找在第二刀片的處理器處的控制器單元的設(shè)備地址,并將該設(shè)備地址插入PCIe數(shù)據(jù)分組 的路由信息中。一旦到達PCIe交換機,該交換機識別目標設(shè)備(在第二刀片的處理器處的 控制器單元)并將該PCIe數(shù)據(jù)分組相應(yīng)地路由。注意,如果網(wǎng)絡(luò)端點未在刀片式服務(wù)器處 得以支持(即它是遠程網(wǎng)絡(luò)地址),控制器單元將使用媒體接口的設(shè)備地址。在優(yōu)選的第二實施例中,數(shù)據(jù)總線交換機911被配置為在網(wǎng)絡(luò)協(xié)議層級(例如鏈 路層以太網(wǎng))上在刀片式服務(wù)器的刀片間處理數(shù)據(jù)分組的路由。因此,數(shù)據(jù)總線交換機被 配置為解析封裝在該交換機處接收的EolPCIe數(shù)據(jù)分組中的網(wǎng)絡(luò)數(shù)據(jù)分組的至少一些頭 部信息。只需要該交換機支持轉(zhuǎn)發(fā)表,該轉(zhuǎn)發(fā)表包括在刀片式服務(wù)器的每個控制單元的設(shè) 備地址和由每個控制器單元支持的網(wǎng)絡(luò)端點的地址之間的對應(yīng)關(guān)系。如果在刀片內(nèi)將在控 制器單元間路由數(shù)據(jù)而不經(jīng)過交換機,每個控制器單元僅需要支持用于在它的刀片處支持 的網(wǎng)絡(luò)端點的轉(zhuǎn)發(fā)表。這減小了每個控制器單元所需的轉(zhuǎn)發(fā)表大小,并且簡化了刀片式服 務(wù)器的控制平面。例如,假設(shè)在第一刀片的處理器處的應(yīng)用有數(shù)據(jù)要發(fā)送給在第二刀片的處理器處 的應(yīng)用,刀片和媒體接口由PCIe數(shù)據(jù)總線互連,并且提供到以太網(wǎng)網(wǎng)絡(luò)的接口。第一處理 器的控制器單元形成發(fā)送給在第二刀片的處理器處的應(yīng)用的端點的以太網(wǎng)數(shù)據(jù)分組。在形 成封裝以太網(wǎng)數(shù)據(jù)分組的一個或更多個Eol PCIe數(shù)據(jù)分組時,控制器單元識別在第一刀片 處不支持數(shù)據(jù)分組將被發(fā)送至的以太網(wǎng)地址,結(jié)果,它將把PCIe交換機的設(shè)備地址插入到 PCIe數(shù)據(jù)分組的路由信息中。一旦到達PCIe交換機,該交換機解析該PCIe數(shù)據(jù)分組,并從 包括在其中的網(wǎng)絡(luò)數(shù)據(jù)分組中識別目標以太網(wǎng)地址。該交換機然后在它的轉(zhuǎn)發(fā)表中查找相 應(yīng)于該目標以太網(wǎng)地址(即在支持該以太網(wǎng)地址的第二刀片的處理器處的控制器單元設(shè) 備)的設(shè)備地址,并在將該數(shù)據(jù)分組推送到適當?shù)腜CIe數(shù)據(jù)總線上前,相應(yīng)地更新該PCIe 數(shù)據(jù)分組頭部。第二實施例也改善了多播流量的性能,因為這種流量僅需要從控制器單元或媒體 接口傳輸給數(shù)據(jù)總線交換機一次交換機將把該多播流量發(fā)送到每個適當?shù)亩它c上。在第 一實施例中,控制器單元必須分別將多播流量發(fā)送給在刀片式服務(wù)器中的每個接收者,因 為在交換機處的路由在數(shù)據(jù)總線層進行。如果媒體接口是PCIe設(shè)備,并且互連刀片的數(shù)據(jù)總線是PCIe數(shù)據(jù)總線,這是有益 的,因為與傳統(tǒng)的刀片式服務(wù)器結(jié)構(gòu)相比這普遍地減少了所需的PHY數(shù)量,從而降低了每 個刀片的功率需求。傳統(tǒng)的刀片式服務(wù)器通常在每個刀片處具有到底板(backplane)的串 行I/O接口(PHY#1),每個I/O接口由PCIe總線(PHY#2)在該刀片處被支持。通過將PCIe 數(shù)據(jù)總線用作刀片式服務(wù)器的底板,不再需要PHY#1。最優(yōu)地,媒體接口是支持在刀片式服務(wù)器處的每個控制器單元的通信的MR-IOV PCIe設(shè)備。換句話說,MR-IOV媒體接口支持用于刀片式服務(wù)器的每個刀片的至少一個物 理功能(physical function, PF)或虛擬功能(virtual function, VF)。如果為每個刀片 分配一個PF,并且為刀片的每個控制器單元分配一個屬于那個刀片的PF的VF,這是最直接的。然而,正如對外圍設(shè)備領(lǐng)域的技術(shù)人員而言將顯而易見的那樣,可使用其他設(shè)置。注意,交換機或網(wǎng)格拓撲可被用于刀片間的連接。在此描述的實際的刀片式服務(wù)器結(jié)構(gòu)與虛擬以太網(wǎng)橋(VirtualEthernet Bridge, VEB)或虛擬以太網(wǎng)端口聚合(VEPA)協(xié)議兼容。在VEB的情況下,在刀片式服務(wù)器 的刀片處的網(wǎng)絡(luò)端點間的數(shù)據(jù)傳輸如上所述那樣運行。在VEPA的情況下,在端點(甚至是在同一處理器處支持的那些)之間的所有交換都在網(wǎng)絡(luò)913的邊緣交換機處進行。如果強 制采用VEPA協(xié)議,則控制器單元、數(shù)據(jù)總線交換機和媒體接口被配置為通過媒體接口將所 有網(wǎng)絡(luò)數(shù)據(jù)分組傳遞給相關(guān)的邊緣交換機。數(shù)據(jù)總線交換機可以形成或不形成與媒體接口相同的集成電路的一部分。參考刀片系統(tǒng)在此描述的實施例,可等同地應(yīng)用于其他雖然沒有物理刀片、但仍 然可以被認為是包括了多個數(shù)據(jù)處理系統(tǒng)的多處理器系統(tǒng)。注意,在在此描述的任何實施例中,媒體接口可支持一個或更多個物理網(wǎng)絡(luò)端口。據(jù)此,申請人分別公開了每個在此描述的單獨特征和兩個或多個這種特征的任意 組合,到達了根據(jù)本領(lǐng)域技術(shù)人公知常識,基于作為整體的本說明書這種特征或組合能夠 實現(xiàn)的程度,無論這種特征或特征的組合是否解決了在此公開的任何問題,而不限制權(quán)利 要求的范圍。申請人指出本發(fā)明的方面可包括任意這種特征或特征的組合。鑒于前述的描 述,對于本領(lǐng)域技術(shù)人員來說在本發(fā)明的范圍內(nèi)作出各種變型將是必然的。
權(quán)利要求
一種包括中央處理器單元和分離網(wǎng)絡(luò)接口功能組的數(shù)據(jù)處理系統(tǒng),該分離網(wǎng)絡(luò)接口功能組包括第一子單元,該第一子單元與所述中央處理單元設(shè)置在一起,并且被配置為,通過為各網(wǎng)絡(luò)數(shù)據(jù)分組生成數(shù)據(jù)鏈路層信息,至少部分地形成用于發(fā)送給網(wǎng)絡(luò)端點的一系列網(wǎng)絡(luò)數(shù)據(jù)分組;以及第二子單元,該第二子單元在所述中央處理單元外部,并通過互連與該中央處理單元相耦合,該第二子單元被配置為通過網(wǎng)絡(luò)物理地傳送所述一系列網(wǎng)絡(luò)數(shù)據(jù)分組。
2.如權(quán)利要求1所述的數(shù)據(jù)處理系統(tǒng),其中,所述第一子單元被配置為根據(jù)在所述互 連上使用的數(shù)據(jù)協(xié)議,將所述一系列網(wǎng)絡(luò)數(shù)據(jù)分組中的各個網(wǎng)絡(luò)數(shù)據(jù)分組封裝在一個或更 多個互連數(shù)據(jù)分組中。
3.如權(quán)利要求1或2所述的數(shù)據(jù)處理系統(tǒng),其中,所述第一子單元被配置為向所述第 二子單元發(fā)送所述互連數(shù)據(jù)分組,以使所述第二子單元通過所述網(wǎng)絡(luò)傳送各個網(wǎng)絡(luò)數(shù)據(jù)分 組。
4.如任一項前述權(quán)利要求所述的數(shù)據(jù)處理系統(tǒng),其中,所述第一子單元被配置為部分 地形成所述一系列網(wǎng)絡(luò)數(shù)據(jù)分組,并且所述第二子單元被配置為在所述網(wǎng)絡(luò)上使用的所述 網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)鏈路層完成所述一系列網(wǎng)絡(luò)數(shù)據(jù)分組中各個網(wǎng)絡(luò)數(shù)據(jù)分組的形成。
5.如權(quán)利要求4所述的數(shù)據(jù)處理系統(tǒng),其中,所述第二子單元被配置為通過針對各個 網(wǎng)絡(luò)數(shù)據(jù)分組計算一個或更多個校驗和,在所述數(shù)據(jù)鏈路層完成所述一系列網(wǎng)絡(luò)數(shù)據(jù)分組 中各個網(wǎng)絡(luò)數(shù)據(jù)分組的形成。
6.如任一項前述權(quán)利要求所述的數(shù)據(jù)處理系統(tǒng),其中,所述第二子單元被配置為根據(jù) 在所述網(wǎng)絡(luò)上使用的所述網(wǎng)絡(luò)協(xié)議的物理層需求,通過所述網(wǎng)絡(luò)物理傳送完成后的所述一 系列網(wǎng)絡(luò)數(shù)據(jù)分組。
7.如任一項前述權(quán)利要求所述的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)還包括與所述中央處 理單元耦合的存儲器和/或高速緩存,在所述中央處理單元處,存儲器管理單元被配置為 為所述中央處理單元和所述第一子單元提供到所述存儲器和/或高速緩存的訪問。
8.如權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中,所述存儲器和/或高速緩存被配置為保存 包括用于通過所述網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)在內(nèi)的發(fā)送隊列,并且所述第一子單元被配置為借助于 對所述存儲器管理單元的讀請求訪問所述發(fā)送隊列,并使用用于通過所述網(wǎng)絡(luò)發(fā)送的數(shù)據(jù) 來形成所述一系列網(wǎng)絡(luò)數(shù)據(jù)分組。
9.如任一項前述權(quán)利要求所述的數(shù)據(jù)處理系統(tǒng),其中,所述第二子單元能夠操作以通 過所述網(wǎng)絡(luò)接收一系列網(wǎng)絡(luò)數(shù)據(jù)分組,并且所述第一子單元被配置為在所述數(shù)據(jù)鏈路層至 少部分地處理各個接收到的網(wǎng)絡(luò)數(shù)據(jù)分組,以便提取在該網(wǎng)絡(luò)數(shù)據(jù)分組中攜帶的數(shù)據(jù)。
10.如從屬于權(quán)利要求7的權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中,所述第一子單元被 配置為在所述存儲器處存儲轉(zhuǎn)發(fā)表,該轉(zhuǎn)發(fā)表包括信息,該信息所述第一子單元能夠針對 各個接收到的網(wǎng)絡(luò)數(shù)據(jù)分組,依賴于該接收到的網(wǎng)絡(luò)數(shù)據(jù)分組的內(nèi)容將提取的數(shù)據(jù)路由至 所述存儲器和/或其他網(wǎng)絡(luò)設(shè)備中的一個或更多個接收隊列。
11.如權(quán)利要求9或10所述的數(shù)據(jù)處理系統(tǒng),其中,所述第二子單元被配置為根據(jù)在接 近所述第二子單元的所述互連的數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議,將各個接收到的網(wǎng)絡(luò)數(shù)據(jù)分 組封裝在一個或更多個互連數(shù)據(jù)分組中。
12.如權(quán)利要求9至11中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述第二子單元被配 置為向所述第一子單元發(fā)送所述互連數(shù)據(jù)分組,以便使所述第一子單元在所述數(shù)據(jù)鏈路層 至少部分地處理各個接收到的網(wǎng)絡(luò)數(shù)據(jù)分組,并提取在接收到的網(wǎng)絡(luò)數(shù)據(jù)分組內(nèi)攜帶的數(shù) 據(jù)。
13.一種數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)包括中央處理單元,該中央處理單元包括網(wǎng)絡(luò)接口控制器,該網(wǎng)絡(luò)接口控制器被配置為,根 據(jù)網(wǎng)絡(luò)協(xié)議,通過在數(shù)據(jù)鏈路層將用于通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)至少部分地形成幀,來形成中 間數(shù)據(jù)單元,每個中間數(shù)據(jù)單元包括用于傳輸?shù)臄?shù)據(jù)的目的地網(wǎng)絡(luò)地址;存儲器,該存儲器與所述中央處理單元相耦合;媒體接口,該媒體接口與所述網(wǎng)絡(luò)相連接,并且被配置為通過所述網(wǎng)絡(luò)發(fā)送完全形成 的數(shù)據(jù)分組;以及第一互連,該第一互連在所述中央處理單元和所述媒體接口之間延伸,該互連由一條 或更多條數(shù)據(jù)鏈路形成;其中,所述網(wǎng)絡(luò)接口控制器被配置為,將所述網(wǎng)絡(luò)協(xié)議的中間數(shù)據(jù)單元封裝在通過所 述第一互連發(fā)送的互連數(shù)據(jù)分組中,并且所述媒體接口被配置為,從通過所述第一互連接 收的互連數(shù)據(jù)分組中提取中間數(shù)據(jù)單元,并在物理層處理該中間數(shù)據(jù)單元,以便根據(jù)所述 網(wǎng)絡(luò)協(xié)議完成數(shù)據(jù)分組的形成。
14.如權(quán)利要求13所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器被配置為,根據(jù)在 接近所述中央處理單元的所述第一互連的數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議,將每個中間數(shù)據(jù)單 元封裝在一個或更多個互連數(shù)據(jù)分組中。
15.如權(quán)利要求13至14所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器被配置為,使 一個或更多個互連數(shù)據(jù)分組被發(fā)送給所述媒體接口,以便使所述媒體接口通過所述網(wǎng)絡(luò)發(fā) 送完整形成的網(wǎng)絡(luò)數(shù)據(jù)分組。
16.如權(quán)利要求13至15中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器 被配置為,將封裝頭部寫入每個互連數(shù)據(jù)分組,該封裝頭部包括使所述媒體接口能根據(jù)互 連數(shù)據(jù)分組來重組各中間數(shù)據(jù)單元的信息。
17.如權(quán)利要求13至16中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述第一互連包括以 下兩條數(shù)據(jù)鏈路第一數(shù)據(jù)鏈路,該第一數(shù)據(jù)鏈路在所述中央處理單元和轉(zhuǎn)換單元之間延伸;以及第二數(shù)據(jù)鏈路,該第二數(shù)據(jù)鏈路在所述轉(zhuǎn)換單元和所述媒體接口之間延伸;所述轉(zhuǎn)換單元被配置為,將根據(jù)在所述第一數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議而形成幀的互 連數(shù)據(jù)分組轉(zhuǎn)換為根據(jù)在所述第二數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議而形成幀的互連數(shù)據(jù)分組, 和將根據(jù)在所述第二數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議而形成幀的互連數(shù)據(jù)分組轉(zhuǎn)換為根據(jù)在 所述第一數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議而形成幀的互連數(shù)據(jù)分組。
18.如權(quán)利要求17所述的數(shù)據(jù)處理系統(tǒng),其中,所述轉(zhuǎn)換單元被配置為通過以下操作 來轉(zhuǎn)換互連數(shù)據(jù)分組移除在所述第一數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議的幀形成數(shù)據(jù),并根據(jù)在所述第二數(shù)據(jù)鏈 路上使用的數(shù)據(jù)協(xié)議來對所述一個或更多個互連數(shù)據(jù)分組重新形成幀,或者根據(jù)在所述第二數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議,增加關(guān)于所述一個或更多個互連數(shù)據(jù)分組的附加幀形成層。
19.如權(quán)利要求17或18所述的數(shù)據(jù)處理系統(tǒng),其中,所述第一數(shù)據(jù)鏈路是CPU互連,并 且所述第二數(shù)據(jù)鏈路是外圍數(shù)據(jù)總線。
20.如權(quán)利要求19所述的數(shù)據(jù)處理系統(tǒng),其中,所述媒體接口在所述外圍數(shù)據(jù)總線處 被支持。
21.如權(quán)利要求19或20所述的數(shù)據(jù)處理系統(tǒng),其中,所述CPU互連是HyperTransport 互連、QuickPath互連和PCIe互連中的一個。
22.如權(quán)利要求19至21中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述外圍數(shù)據(jù)總線是 PCIe0
23.如權(quán)利要求13至22中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述中央處理單元進 一步包括存儲器管理單元,該存儲器管理單元被配置為為所述中央處理單元和所述網(wǎng)絡(luò)接 口控制器提供到所述存儲器的訪問。
24.如權(quán)利要求13至23中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器 被配置為,如果目的地網(wǎng)絡(luò)地址屬于在所述中央處理單元處支持的進程,則直接將用于發(fā) 送的數(shù)據(jù)寫入所述存儲器處的接收隊列,而不將該數(shù)據(jù)封裝在一個或更多個互連數(shù)據(jù)分組 中,所述接收隊列對應(yīng)于所述目的地網(wǎng)絡(luò)地址。
25.如權(quán)利要求24所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器進一步被配置為 不根據(jù)所述網(wǎng)絡(luò)協(xié)議在所述數(shù)據(jù)鏈路層對所述數(shù)據(jù)形成幀。
26.如權(quán)利要求23至25中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述存儲器被配置為 保存包括用于通過所述網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)的一個或更多個發(fā)送隊列,并且所述網(wǎng)絡(luò)接口控制 器能夠操作以借助于對所述存儲器管理單元的讀請求,在用于發(fā)送的數(shù)據(jù)各自的發(fā)送隊列 處訪問所述數(shù)據(jù)。
27.如權(quán)利要求23至26中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述存儲器管理單元 包括高速緩存,該高速緩存能夠操作來存儲在所述存儲器處保存的至少一些數(shù)據(jù)的副本, 并且該高速緩存能由所述中央處理單元和所述網(wǎng)絡(luò)接口控制器兩者訪問。
28.如權(quán)利要求27所述的數(shù)據(jù)處理系統(tǒng),其中,所述高速緩存被配置為存儲由所述中 央處理單元最近在所述存儲器處訪問的數(shù)據(jù)。
29.如權(quán)利要求27或28所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器被配置為對 于能在所述存儲器和所述高速緩存處獲得的任何用于發(fā)送的數(shù)據(jù),優(yōu)先于從所述存儲器讀 取該用于發(fā)送的數(shù)據(jù)而從所述高速緩存讀取該數(shù)據(jù)。
30.如權(quán)利要求27或28所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器被配置為,對 于不能在所述高速緩存處獲得的用于發(fā)送的數(shù)據(jù),從所述存儲器讀取所述數(shù)據(jù)并且不向所 述高速緩存寫入該數(shù)據(jù)。
31.如權(quán)利要求29所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器被配置為,一旦從 所述高速緩存讀取了用于發(fā)送的數(shù)據(jù),則使所述高速緩存的相應(yīng)的線無效,以使在所述中 央處理單元處執(zhí)行的其他進程能改寫這些線。
32.如權(quán)利要求13至31中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中所述媒體接口能操作來通過所述網(wǎng)絡(luò)接收網(wǎng)絡(luò)數(shù)據(jù)分組,并將接收到的網(wǎng)絡(luò)數(shù)據(jù)分組 封裝在用于通過所述第一互連發(fā)送的互連數(shù)據(jù)分組中;并且所述網(wǎng)絡(luò)接口控制器被配置為,從互連數(shù)據(jù)分組中提取接收到的網(wǎng)絡(luò)數(shù)據(jù)分組,并且 根據(jù)網(wǎng)絡(luò)協(xié)議至少部分地在數(shù)據(jù)鏈路層處理各個接收到的網(wǎng)絡(luò)數(shù)據(jù)分組,以便提取在各個 接收到的網(wǎng)絡(luò)數(shù)據(jù)分組中攜帶的數(shù)據(jù)。
33.如權(quán)利要求32所述的數(shù)據(jù)處理系統(tǒng),其中,所述媒體接口被配置為,根據(jù)在接近所 述媒體接口的所述第一互連的數(shù)據(jù)鏈路上使用的數(shù)據(jù)協(xié)議,將各個接收到的網(wǎng)絡(luò)數(shù)據(jù)分組 封裝在一個或更多個互連數(shù)據(jù)分組中。
34.如權(quán)利要求32或33所述的數(shù)據(jù)處理系統(tǒng),其中,所述媒體接口被配置為,將所述互 連數(shù)據(jù)分組發(fā)送給所述網(wǎng)絡(luò)接口控制器,以使所述網(wǎng)絡(luò)接口控制器在所述數(shù)據(jù)鏈路層至少 部分地處理各個接收到的網(wǎng)絡(luò)數(shù)據(jù)分組,并將攜帶在各個接收到的網(wǎng)絡(luò)數(shù)據(jù)分組中的數(shù)據(jù) 寫入在所述存儲器處的至少一個接收隊列,該至少一個接收隊列由在接收到的網(wǎng)絡(luò)數(shù)據(jù)分 組內(nèi)包括的目的地網(wǎng)絡(luò)地址標識。
35.如從屬于權(quán)利要求27的權(quán)利要求34所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控 制器被配置為,一旦將攜帶在接收到的網(wǎng)絡(luò)數(shù)據(jù)分組內(nèi)的數(shù)據(jù)寫入在所述存儲器處的接收 隊列,就將該數(shù)據(jù)寫入所述高速緩存。
36.如權(quán)利要求32至35中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器 被配置為,在所述存儲器處存儲轉(zhuǎn)發(fā)表,該轉(zhuǎn)發(fā)表包括信息,該信息使得所述網(wǎng)絡(luò)接口控制 器能夠針對各個接收到的網(wǎng)絡(luò)數(shù)據(jù)分組,根據(jù)所述目的地網(wǎng)絡(luò)地址選擇所接收到的網(wǎng)絡(luò)數(shù) 據(jù)分組的數(shù)據(jù)要被路由到的所述存儲器和/或其他網(wǎng)絡(luò)設(shè)備處的一個或更多個接收隊列。
37.如權(quán)利要求32至36中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述媒體接口被配置 為,將封裝頭部寫入每個互連數(shù)據(jù)分組,該封裝頭部包括使所述網(wǎng)絡(luò)接口控制器能根據(jù)互 連數(shù)據(jù)分組重組各個網(wǎng)絡(luò)數(shù)據(jù)分組的信息。
38.如從屬于權(quán)利要求23的權(quán)利要求24至37中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中, 所述存儲器管理單元被配置為,一旦從所述中央處理單元或所述網(wǎng)絡(luò)接口控制器接收到訪 問虛擬存儲器地址的請求,就將該虛擬存儲器地址轉(zhuǎn)換為所述數(shù)據(jù)處理系統(tǒng)的物理存儲器 地址并訪問該物理存儲器地址。
39.如權(quán)利要求38所述的數(shù)據(jù)處理系統(tǒng),其中,所述存儲器管理單元被配置為,如果對 代表所述網(wǎng)絡(luò)接口控制器的虛擬存儲器地址的轉(zhuǎn)換失敗,則向所述網(wǎng)絡(luò)接口控制器發(fā)起頁 面故障。
40.如權(quán)利要求39所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器被配置為響應(yīng)于 頁面故障執(zhí)行以下操作如果虛擬存儲器地址與發(fā)送隊列相關(guān),則使對應(yīng)于該虛擬存儲器地址的發(fā)送隊列被暫 停,直到各個頁面被重新寫入所述存儲器;或者如果虛擬存儲器地址與接收隊列相關(guān),則將與所發(fā)出的請求有關(guān)的、接收到的網(wǎng)絡(luò)數(shù) 據(jù)分組的數(shù)據(jù)寫入預(yù)留緩沖,以供所述數(shù)據(jù)處理系統(tǒng)的協(xié)議處理實體來獲取。
41.如權(quán)利要求13至40中的任一項所述的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)進一步包括第二中央處理單元,該第二中央處理單元包括第二網(wǎng)絡(luò)接口控制器,該第二網(wǎng)絡(luò)接口 控制器也被配置為,根據(jù)網(wǎng)絡(luò)協(xié)議通過在數(shù)據(jù)鏈路層至少部分地對用于發(fā)送的數(shù)據(jù)的形成 幀,來形成中間數(shù)據(jù)單元,每個中間數(shù)據(jù)單元包括用于發(fā)送的數(shù)據(jù)的目的地網(wǎng)絡(luò)地址;以及第二互連,該第二互連在所述第二中央處理單元和所述媒體接口之間延伸,該第二互 連由一條或更多條數(shù)據(jù)鏈路形成;其中,所述第二網(wǎng)絡(luò)接口控制器被配置為,將網(wǎng)絡(luò)協(xié)議的中間數(shù)據(jù)單元封裝在用于通 過所述第二互連發(fā)送的互連數(shù)據(jù)分組中,并且所述媒體接口被配置為,從通過所述互連接 收的互連數(shù)據(jù)分組提取中間數(shù)據(jù)單元,并且在物理層處理該中間數(shù)據(jù)單元,以便根據(jù)網(wǎng)絡(luò) 協(xié)議完成數(shù)據(jù)分組的形成。
42.如權(quán)利要求41所述的數(shù)據(jù)處理系統(tǒng),其中,所述第二互連的一個或更多個數(shù)據(jù)鏈 路與所述第一互連的一個或更多個數(shù)據(jù)鏈路共享。
43.如權(quán)利要求41或42所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器被配置為,如 果在所述中央處理單元處形成的中間數(shù)據(jù)單元的目的地網(wǎng)絡(luò)地址是在所述第二中央處理 單元處支持的網(wǎng)絡(luò)地址,則使包括中間數(shù)據(jù)單元的封裝后的互連數(shù)據(jù)分組被發(fā)送給所述第 二網(wǎng)絡(luò)接口控制器。
44.如權(quán)利要求41至43中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述媒體接口包括管 理控制器,該管理控制器被配置為處理接收到的用于網(wǎng)絡(luò)接口設(shè)備的管理命令,該網(wǎng)絡(luò)接 口設(shè)備(a)由所述媒體接口和所述網(wǎng)絡(luò)接口控制器形成和(b)由所述媒體接口和所述第二 網(wǎng)絡(luò)接口控制器形成。
45.如權(quán)利要求13至44中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述數(shù)據(jù)處理系統(tǒng)是 包括一個或更多個在機架處支持的刀片的刀片式服務(wù)器,每個刀片具有一個或更多個中央 處理單元,該一個或更多個中央處理單元中的至少一個包括網(wǎng)絡(luò)接口控制器,并且所述媒 體接口位于刀片式服務(wù)器的機架處。
46.如權(quán)利要求45所述的數(shù)據(jù)處理系統(tǒng),其中,所述中央處理單元和所述第二中央處 理單元位于刀片式服務(wù)器的同一刀片處。
47.如權(quán)利要求46所述的數(shù)據(jù)處理系統(tǒng),其中,所述中央處理單元和所述第二中央處 理單元通過包括所述第一互連的數(shù)據(jù)鏈路和所述第二互連的數(shù)據(jù)鏈路在內(nèi)的CPU互連能 夠互相訪問。
48.如權(quán)利要求45所述的數(shù)據(jù)處理系統(tǒng),其中,所述中央處理單元和所述第二中央處 理單元位于刀片式服務(wù)器的不同的刀片處。
49.如權(quán)利要求45至48中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)接口控制器 被配置為,如果在所述中央處理單元處形成的中間數(shù)據(jù)單元的目的地網(wǎng)絡(luò)地址是屬于在所 述第二中央處理單元處支持的進程的網(wǎng)絡(luò)地址,則通過所述CPU互連、不經(jīng)由所述媒體接 口將封裝中間數(shù)據(jù)單元的互連數(shù)據(jù)分組發(fā)送給所述第二網(wǎng)絡(luò)接口控制器。
50.如權(quán)利要求45至49中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述媒體接口在外圍 數(shù)據(jù)總線處被支持,并且所述刀片式服務(wù)器的刀片被配置為通過所述外圍數(shù)據(jù)總線互相通信。
51.如權(quán)利要求50所述的數(shù)據(jù)處理系統(tǒng),該數(shù)據(jù)處理系統(tǒng)進一步包括在所述刀片式服 務(wù)器的機架處的交換機,該交換機被配置為在所述刀片式服務(wù)器的刀片間路由互連數(shù)據(jù)分組。
52.如權(quán)利要求51所述的數(shù)據(jù)處理系統(tǒng),其中,所述交換機被配置為根據(jù)互連數(shù)據(jù)分 組的幀形成信息,在所述外圍數(shù)據(jù)總線上使用的數(shù)據(jù)協(xié)議的層級上路由互連數(shù)據(jù)分組。
53.如權(quán)利要求51所述的數(shù)據(jù)處理系統(tǒng),其中,所述交換機被配置為,在網(wǎng)絡(luò)協(xié)議的層級上根據(jù)中間數(shù)據(jù)單元的幀形成信息,路由封裝中間數(shù)據(jù)單元的互連數(shù)據(jù)分組。
54.如權(quán)利要求51至53中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述外圍數(shù)據(jù)總線是 PCIe,并且所述交換機是PCIe交換機。
55.如權(quán)利要求13至54中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述媒體接口是常規(guī) PCIe設(shè)備、SR-IOV PCIe設(shè)備和MR-IOV PCIe設(shè)備中的一個。
56.如權(quán)利要求54所述的數(shù)據(jù)處理系統(tǒng),其中,所述媒體接口是SR-IOVPCIe設(shè)備,并 且所述交換機是MR-IOV PCIe交換機。
57.如權(quán)利要求13至56中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述數(shù)據(jù)處理系統(tǒng)的 所述媒體接口和每個網(wǎng)絡(luò)接口控制器被配置為借助于一個或更多個互連數(shù)據(jù)分組來交換 控制數(shù)據(jù)。
58.如權(quán)利要求13至57中的任一項所述的數(shù)據(jù)處理系統(tǒng),其中,所述網(wǎng)絡(luò)協(xié)議是以太 網(wǎng)協(xié)議。
59.一種通過網(wǎng)絡(luò)從數(shù)據(jù)處理系統(tǒng)發(fā)送數(shù)據(jù)的方法,該數(shù)據(jù)處理系統(tǒng)包括在到所述網(wǎng) 絡(luò)的接口處的媒體接口、具有用于訪問存儲器的存儲器管理單元的中央處理單元以及在所 述中央處理單元和所述媒體接口之間連接的互連,該方法包括以下步驟由位于中央處理單元處的網(wǎng)絡(luò)接口控制器執(zhí)行以下操作通過所述存儲器管理單元從位于所述存儲器處的發(fā)送隊列中獲取用于通過所述網(wǎng)絡(luò) 發(fā)送的數(shù)據(jù);在數(shù)據(jù)鏈路層上至少部分地形成網(wǎng)絡(luò)協(xié)議的包含獲取的數(shù)據(jù)的數(shù)據(jù)分組的幀;以及 根據(jù)在互連上使用的數(shù)據(jù)協(xié)議,將網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組封裝在用于通過所述互連發(fā)送 的數(shù)據(jù)分組中,并將該數(shù)據(jù)分組通過所述互連發(fā)送給所述媒體接口 ; 由所述媒體接口執(zhí)行以下操作 接收封裝后的數(shù)據(jù)分組; 從封裝后的數(shù)據(jù)分組提取網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組;在物理層處理網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組,以便根據(jù)網(wǎng)絡(luò)協(xié)議完成該數(shù)據(jù)分組的幀形成;以及將完全形成的網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組發(fā)送到所述網(wǎng)絡(luò)上。
60.一種通過網(wǎng)絡(luò)在數(shù)據(jù)處理系統(tǒng)處接收數(shù)據(jù)的方法,該數(shù)據(jù)處理系統(tǒng)包括在到所述 網(wǎng)絡(luò)的接口處的媒體接口、具有用于訪問存儲器的存儲器管理單元的中央處理單元和在所 述中央處理單元和所述媒體接口之間連接的互連,該方法包括以下步驟由所述媒體接口執(zhí)行以下操作 通過所述網(wǎng)絡(luò)接收網(wǎng)絡(luò)數(shù)據(jù)分組;和根據(jù)在所述互連上使用的數(shù)據(jù)協(xié)議,將接收的網(wǎng)絡(luò)數(shù)據(jù)分組封裝在用于通過所述互連 發(fā)送的數(shù)據(jù)分組中,并將該數(shù)據(jù)分組通過所述互連發(fā)送給位于所述中央處理單元處的所述 網(wǎng)絡(luò)接口控制器;由網(wǎng)絡(luò)接口控制器執(zhí)行以下操作接收封裝后的數(shù)據(jù)分組;從封裝后的數(shù)據(jù)分組提取接收的網(wǎng)絡(luò)數(shù)據(jù)分組;根據(jù)網(wǎng)絡(luò)協(xié)議在數(shù)據(jù)鏈路層至少部分地處理每個接收的網(wǎng)絡(luò)數(shù)據(jù)分組,以便提取在每 個接收的網(wǎng)絡(luò)數(shù)據(jù)分組內(nèi)攜帶的數(shù)據(jù);和借助于所述存儲器管理單元將提取的數(shù)據(jù)寫入在所述存儲器處的接收隊列。
61.一種在數(shù)據(jù)處理系統(tǒng)處的中央處理單元間通信數(shù)據(jù)的方法,該數(shù)據(jù)處理系統(tǒng)具有 借助于互連耦合在一起的第一中央處理單元和第二中央處理單元,每個中央處理單元包括 各自的網(wǎng)絡(luò)接口控制器,所述網(wǎng)絡(luò)接口控制器能操作來(a)根據(jù)網(wǎng)絡(luò)協(xié)議,在數(shù)據(jù)鏈路層 通過至少部分地形成以用于通信的數(shù)據(jù)的幀來形成中間數(shù)據(jù)單元,和(b)根據(jù)網(wǎng)絡(luò)協(xié)議在 數(shù)據(jù)鏈路層至少部分地處理中間數(shù)據(jù)單元,以便提取在每個中間數(shù)據(jù)單元內(nèi)攜帶的用于通 信的數(shù)據(jù),該方法包括以下步驟所述第一中央處理單元將用于通信的數(shù)據(jù)傳遞給它的第一網(wǎng)絡(luò)接口控制器; 由所述第一網(wǎng)絡(luò)接口控制器執(zhí)行以下操作根據(jù)網(wǎng)絡(luò)協(xié)議在數(shù)據(jù)鏈路層通過至少部分地形成用于通信的數(shù)據(jù)的幀來形成包括用 于通信的數(shù)據(jù)的中間數(shù)據(jù)單元;將網(wǎng)絡(luò)協(xié)議的中間數(shù)據(jù)單元封裝在用于通過所述互連發(fā)送的數(shù)據(jù)分組中;和 將封裝后的數(shù)據(jù)分組通過所述互連發(fā)送給ν第二網(wǎng)絡(luò)接口控制器; 由所述第二網(wǎng)絡(luò)接口控制器執(zhí)行以下操作 接收封裝后的數(shù)據(jù)分組; 從封裝后的數(shù)據(jù)分組提取中間數(shù)據(jù)單元;根據(jù)網(wǎng)絡(luò)協(xié)議在數(shù)據(jù)鏈路層至少部分地處理每個中間數(shù)據(jù)單元,以便提取在每個中間 數(shù)據(jù)單元內(nèi)攜帶的數(shù)據(jù);和將提取的數(shù)據(jù)傳遞給所述第二中央處理單元。
62.一種用于數(shù)據(jù)處理系統(tǒng)的中央處理單元,該中央處理單元包括 處理核;鏈路模塊,該鏈路模塊用于通過數(shù)據(jù)總線傳送預(yù)定數(shù)據(jù)協(xié)議的數(shù)據(jù)分組; 存儲器管理單元,該存儲器管理單元能夠操作來從與所述中央處理單元耦合的存儲器 獲取數(shù)據(jù);和網(wǎng)絡(luò)接口控制器,該網(wǎng)絡(luò)接口控制器被配置為 借助于所述存儲器管理單元獲取用于通過網(wǎng)絡(luò)發(fā)送的數(shù)據(jù); 在數(shù)據(jù)鏈路層形成包含獲取的數(shù)據(jù)的網(wǎng)絡(luò)協(xié)議的數(shù)據(jù)分組的幀;和 使所述分組被封裝在預(yù)定數(shù)據(jù)協(xié)議的數(shù)據(jù)分組中,并借助于所述鏈路模塊通過數(shù)據(jù)總 線被傳送。
63.如權(quán)利要求62所述的中央處理單元,其中,所述網(wǎng)絡(luò)接口控制器不在物理層對網(wǎng) 絡(luò)協(xié)議的數(shù)據(jù)分組形成幀。
64.一種用于數(shù)據(jù)處理系統(tǒng)的中央處理單元,該中央處理單元包括 處理核;高速緩存;存儲器管理單元,該存儲器管理單元能夠操作來從與所述中央處理單元耦合的存儲器 獲取數(shù)據(jù);和網(wǎng)絡(luò)接口管理器,該網(wǎng)絡(luò)接口管理器被配置為當使用時將至少一些它的狀態(tài)存儲在與所述中央處理單元耦合的所述存儲器處;其中,所述處理核和所述網(wǎng)絡(luò)接口控制器被配置為,借助于所述存儲器管理單元訪問 與所述中央處理單元耦合的所述存儲器,并且所述高速緩存被配置為高速地緩存在與所述 中央處理單元耦合的所述存儲器處存儲的數(shù)據(jù)。
65.如權(quán)利要求61所述的中央處理單元,其中,所述網(wǎng)絡(luò)接口控制器的狀態(tài)包括轉(zhuǎn)發(fā) 表和地址轉(zhuǎn)換表中的一個或全部兩個。
66.一種在數(shù)據(jù)處理系統(tǒng)處支持的、對該數(shù)據(jù)處理系統(tǒng)將其自身表現(xiàn)為PCIe設(shè)備的電 子設(shè)備,該數(shù)據(jù)處理系統(tǒng)包括中央處理單元和PCIe數(shù)據(jù)總線,并且外圍設(shè)備具有以下兩個 組件核心組件,該核心組件位于中央處理單元處,能夠操作來處理對所述電子設(shè)備的I/O 請求;和外圍組件,所述核心設(shè)備通過PCIe數(shù)據(jù)總線可訪問該外圍組件;其中,所述核心組件被配置為對發(fā)送給所述外圍組件的I/O請求進行響應(yīng)。
67.如權(quán)利要求66所述的電子設(shè)備,其中,所述核心組件被分配了定義其控制范圍的 硬件地址范圍,并且所述外圍組件被配置為,提供指示包括了所述核心組件的控制范圍的 基地址的硬件地址范圍的基地址寄存器,使得針對由基地址寄存器指示的硬件地址范圍的 I/O請求在所述核心組件的控制范圍處得以處理。
68.如權(quán)利要求66所述的電子設(shè)備,其中,所述外圍組件附加地是一個或更多個其他 PCIe設(shè)備的組件,并且所述外圍組件被配置為,為每個其他PCIe設(shè)備提供附加的基地址寄 存器,每個附加的基地址寄存器被配置為使得針對由該基地址寄存器指示的硬件地址范圍 的I/O請求在該其他PCIe設(shè)備的相應(yīng)的核心組件處得以處理。
69.如權(quán)利要求66或67所述的電子設(shè)備,其中,所述外圍組件被配置為,將其接收的中 斷配置請求轉(zhuǎn)發(fā)給所述核心組件以在該核心組件處處理。
70.如權(quán)利要求66至69中的任意一項所述的電子設(shè)備,其中,所述外圍組件進一步提 供支持傳統(tǒng)寄存器組的傳統(tǒng)基地址寄存器,所述外圍組件被配置為當讀或?qū)懰鰝鹘y(tǒng)寄存 器時,將對所述傳統(tǒng)寄存器的讀或?qū)懹成錇閷λ龊诵慕M件的控制范圍的讀或?qū)?,使得?對所述傳統(tǒng)寄存器組的傳統(tǒng)I/O請求在所述核心組件的控制范圍處得以處理。
71. 一種本質(zhì)上如參考圖2至9中任一個在此描述的網(wǎng)絡(luò)接口設(shè)備。
全文摘要
本發(fā)明涉及控制器集成。提供了一種包括中央處理單元和分離網(wǎng)絡(luò)接口功能組的數(shù)據(jù)處理系統(tǒng),該分離網(wǎng)絡(luò)接口功能組包括與中央處理單元設(shè)置在一起的第一子單元,被配置為通過為每個網(wǎng)絡(luò)數(shù)據(jù)分組生成數(shù)據(jù)鏈路層信息來至少部分地形成用于發(fā)送給網(wǎng)絡(luò)端點的一系列網(wǎng)絡(luò)數(shù)據(jù)分組;以及在中央處理單元外部并且通過互連部與中央處理單元相耦合的第二子單元,該第二子單元被配置為通過網(wǎng)絡(luò)物理地傳送一系列網(wǎng)絡(luò)數(shù)據(jù)分組。
文檔編號H04L29/06GK101990002SQ20101028068
公開日2011年3月23日 申請日期2010年7月29日 優(yōu)先權(quán)日2009年7月29日
發(fā)明者史蒂夫·波普, 大衛(wèi)·里多克, 德里克·羅伯茨 申請人:索樂弗萊爾通訊公司