国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于網(wǎng)絡接口控制器的存儲器映射的緩沖器的制作方法

      文檔序號:7659000閱讀:238來源:國知局
      專利名稱:用于網(wǎng)絡接口控制器的存儲器映射的緩沖器的制作方法
      技術領域
      本發(fā)明一般而言涉及數(shù)據(jù)通信系統(tǒng)和方法,更特別地涉及其中為 網(wǎng)絡接口控制器提供了存儲器映射的接收和發(fā)送緩沖器的數(shù)據(jù)通信系 統(tǒng)和方法,
      背景技術
      如圖1所示,網(wǎng)絡接口控制器(NIC)是一種支持計算機之間的數(shù) 據(jù)傳輸?shù)挠布O備.其中,對稱多處理器(SMP)系統(tǒng)10包括多個中 央處理器單元(CPU) 12,所述各中央器處理單元通過存儲器互連16 共享存儲器單元14.雖然SMP10被示出為具有四個CPU (內(nèi)核),但 是本領域技術人員將理解,SMP IO可以具有更多或更少的CPU, SMPIO 在NIC 18的控制下通過以太網(wǎng)連接和結構(開關)22發(fā)送消息給其 他SMP 20、 30和40.所述NIC 18 —般將具有與其相關聯(lián)的處理器(未 示出),該處理器或者是作為該NIC的組成部分或者是以幫助器處理 器的形式,從而該NIC具有足夠的智能來解釋各種命令.所述NIC 18 以及各種I/O設備42、 44通過I/O互連46被連接到所述SMP的剩余 部分,該I/O互連46通過I/O適配器48 (例如橋接器)與存儲器互 連16通信.
      在這種系統(tǒng)中,所傳輸?shù)臄?shù)據(jù)的通常的源和目的地是頁式虛擬存 儲器,頁式虛擬存儲器提供虛擬地址,所述虛擬地址被轉(zhuǎn)換或者映射 到物理頁面上,并且允許把虛擬頁面換出到盤上或者從主存儲器中移 除以及稍后將其從盤上換入到新的物理頁面位置處.操作系統(tǒng)可以對 所謂的"未釘住的(unpinned)"虛擬頁面單方面執(zhí)行頁面交換.因 此,在這種系統(tǒng)上搮作的應用軟件典型地使用地址轉(zhuǎn)換硬件來訪問主 存儲器,所述地址轉(zhuǎn)換硬件確保正確的物理頁面被訪問,例如確保所 述操作系統(tǒng)尚未針對該應用軟件需要訪問的頁面發(fā)起頁面交換.軟件 訪問在需要把數(shù)據(jù)換出的時間間隔期間暫停,并且在把數(shù)據(jù)換入到新 的物理位置處時通過訪問該位置而恢復.
      一些連網(wǎng)解決方案通過提供軟件以把數(shù)據(jù)從未釘住的虛擬存儲器拷貝到已釘住的(pinned)接口存儲器來解決與虛擬頁面交換期間的
      軟件暫停相關聯(lián)的停機時間.已釘住的存儲器由不能被所述操作系統(tǒng) 交換到盤上的頁面構成。在這種系統(tǒng)中,所述NIC 18將典型地只訪問 已釘住的接口存儲器.這簡化了由該NIC 18執(zhí)行的直接存儲器訪問 (DMA)傳輸,這是由于在網(wǎng)絡操作期間從不交換數(shù)據(jù),這樣又確保數(shù) 據(jù)在整個NIC的DMA數(shù)據(jù)傳輸期間保持可訪問,并且確保該數(shù)據(jù)的物 理地址保持恒定.然而,這種解決方案需要以數(shù)據(jù)拷貝(例如從未釘 住的虛擬存儲器拷貝到可以由NIC 18訪問的已釘住的系統(tǒng)緩沖器)的 形式的額外開銷,所述數(shù)據(jù)拷貝利用了重要的系統(tǒng)資源.
      由未釘住的虛擬存儲器所造成的所述問題的另 一種解決方案消除 了上面描述的數(shù)據(jù)拷貝,但是代之以要求所述NIC 18調(diào)用一個操作系 統(tǒng)功能以便在直接從/向虛擬頁面發(fā)送數(shù)據(jù)之前釘住該頁面.另外,所 述頁面稍后必須由另一個NIC/操作系統(tǒng)交互來釋放(unpin),以便 允許在網(wǎng)絡活動完成之后進行頁面交換.雖然這消除了到已釘住的頁 面的拷貝,但是所述NIC 18現(xiàn)在必須調(diào)用代價高昂的頁面釘住和頁面 釋放功能.這些操作中的每一個都需要所述NIC的處理器與所述操作 系統(tǒng)之間的通信。當這些通信需要所述I/O互連46的中斷或輪詢時, 所述中斷和輪詢在資源利用效率方面的代價是十分高昂的。
      相應地,將希望提供使得NIC能夠更加高效地處理數(shù)據(jù)傳輸問題 的機制和方法.

      發(fā)明內(nèi)容
      根據(jù)本發(fā)明的一個示例性實施例, 一種處理系統(tǒng)包括多個處理 單元,每個處理單元包括至少一個處理器和至少一個系統(tǒng)存儲器;以 及網(wǎng)絡接口控制器(NIC),其與所述多個處理單元當中的每一個相關 聯(lián),以用于在各處理單元之間發(fā)送和接收數(shù)據(jù),其中,所述多個單元 當中的每一個進一步包括存儲器互連,所述NIC被直接連接到該存儲 器互連,并且所述NIC包括至少一個存儲器映射的緩沖器.
      根據(jù)本發(fā)明的另一個示例性實施例, 一種用于在處理系統(tǒng)中傳送 數(shù)據(jù)的方法包括以下步驟提供多個處理單元,每個處理單元包括至 少一個處理器和至少一個系統(tǒng)存儲器;以及通過與所述多個處理單元 當中的每一個相關聯(lián)的網(wǎng)絡接口控制器(NIC)在各處理單元之間發(fā)送
      和接收數(shù)據(jù),其中,所述多個單元當中的每一個進一步包括存儲器互
      連,所述NIC被直接連接到該存儲器互連,并且所述NIC包括至少一 個存儲器映射的緩沖器.


      附圖被結合在說明書中并且構成說明書的一部分,該附困示出本 發(fā)明的實施例并且與下面的描述一起解釋本發(fā)明.在附困中
      困1示出一個示例性處理系統(tǒng),其中網(wǎng)絡接口控制器通過I/O互 連被連接到該處理系統(tǒng);
      圖2示出一個示例性處理系統(tǒng),其中NIC通過到根據(jù)一個示例性 實施例的存儲器互連的直接連接被連接到該處理系統(tǒng);
      圖3描繪根據(jù)本發(fā)明一個示例性實施例的NIC的一部分,其包括 存儲器映射的接收緩沖器;
      圖4是描繪根據(jù)本發(fā)明一個示例性實施例的用于傳送數(shù)據(jù)的一般 方法的流程圖5是描繪根據(jù)本發(fā)明一個示例性實施例的用于管理存儲器的方 法的流程圖;以及
      圖6是描繪根據(jù)本發(fā)明另一個示例性實施例的用于管理存儲器的 方法的流程圖。
      具體實施例方式
      下面對于本發(fā)明的各示例性實施例的描述是參考附圖進行的.不 同附圖中的相同附困標記標識相同或類似的元件.下面的詳細描述不 限制本發(fā)明.代之以,本發(fā)明的范圍由所附權利要求書來限定.
      根據(jù)本發(fā)明的各示例性實施例,在所述NIC內(nèi)的發(fā)送及接收命令 和數(shù)據(jù)的緩沖器被直接映射到所述處理器的存儲器互連(有時也被稱 作"存儲器總線"、"一致性互連"或"前端總線")上。這尤其允 許把數(shù)據(jù)高效地拷貝到NIC;把命令高效地拷貝到NIC;從NIC高效 地拷貝數(shù)據(jù);以及高效地檢測數(shù)據(jù)到達和命令完成.為了實現(xiàn)這種存 儲器映射的緩沖器,SMP的總體架構被修改成使得所述NIC被直接連接 到所述存儲器互連(而不是如圖1所示的那樣通過I/O互連46和I/O 適配器48間接連接)?,F(xiàn)在將相對于圖2描述根據(jù)一個示例性實施例
      的支持這種存儲器映射的發(fā)送和接收援沖器的一般架構.
      其中,SMP系統(tǒng)200包括多個中央處理器單元(CPU) 212,所述 各中央處理器單元通過存儲器互連216共享存儲器單元2l4.雖然SMP 200被示出為具有四個CPU(內(nèi)核),但是本領域技術人員將理解,SMP 200可以具有更多或更少的CPU. SMP 200在NIC 218的控制下通過以 太網(wǎng)連接和結構(開關)220發(fā)送消息給其他SMP 200.所述NIC 218 一般將具有與其相關聯(lián)的處理器(未示出),該處理器或者是作為該 NIC的組成部分或者是以幫助器處理器的形式,從而該NIC具有足夠的 智能來解釋各種命令.各種I/0設備230 (例如顯示器、第二存儲器存 儲設備等等)通過I/O適配器238 (例如橋接器)和I/O互連240被 連接到所述存儲器互連216.從圖1與圖2的比較可以看出,困2的示 例性實施例使得所述NIC 218被直接連接到該存儲器互連216而不是 通過I/0互連和1/0適配器被間接連接.這種架構尤其便于在所述NIC 218內(nèi)的發(fā)送和/或接收緩沖器的存儲器映射.如在此所用的術語"存 儲器映射"是指各CPU 212通過存儲器214內(nèi)的對應于緩沖器的保留 存儲器位置直接向(或從)所述NIC 218內(nèi)的發(fā)送(或接收)緩沖器 進行寫入(或讀取)的能力.
      因此,圖2的示例性系統(tǒng)的接收側(cè)(其一部分被顯示為圖3)將包 括一個或多個存儲器映射的接收緩沖器300.如圖中所示,NIC 218被 直接連接到存儲器互連216,這是因為數(shù)據(jù)在一方面的NIC 218與另 一方面的系統(tǒng)存儲器308或處理器304之間的它的路線上不必通過I/0 總線.如在此所用的短語"直接連接"不排除在緩沖器與存儲器互連 之間提供接口 (例如存儲器接口電路305 ).
      在困3的左側(cè),數(shù)據(jù)通過例如以太網(wǎng)接口到達,并且被接收隊列 填充電路302放置到存儲器映射的接收援沖器300中.根據(jù)該示例性 實施例,該存儲器映射的接收緩沖器300是循環(huán)隊列數(shù)據(jù)結構,但是 本發(fā)明不限于循環(huán)隊列.然而,在該實例中,接收緩沖器300在其中 (在"活動區(qū)"中)存儲有由尾指針和頭指針標識的內(nèi)容,所述尾指針 和頭指針分別表示最近存放的數(shù)據(jù)和最早存放的數(shù)據(jù).在接收到數(shù)據(jù) 時,數(shù)據(jù)被插入在所述接收緩沖器300的尾部,并且把尾指針移動越 過新插入的數(shù)據(jù).通過把頭指針移動越過不需要的數(shù)據(jù)來從該接收緩 沖器300的所述活動區(qū)中移除數(shù)據(jù).
      當所述接收緩沖器300為滿時,可以丟棄進入的分組,以便防止 緩沖器溢出.當使用可靠的協(xié)議(例如傳輸控制協(xié)議或TCP)來重傳分 組時,即使丟棄了分組也可以保持正確的操作.可以使用其他技術來 防止緩沖器溢出.例如,代替丟棄最近接收的幀,所述系統(tǒng)可以丟棄 較早接收的幀,比如最早接收的楨.所述接收隊列填充電路302把來 自到達的以太網(wǎng)楨的數(shù)據(jù)存放到所述接收緩沖器300的尾指針之外的 區(qū)域內(nèi).把尾指針前進越過來自該以太網(wǎng)幀的有效數(shù)據(jù).把尾指針前 進越過到達的數(shù)據(jù)表明新的數(shù)據(jù)已經(jīng)到達并且可以被處理.所述接收 緩沖器的頭、尾指針也被存儲器映射,即與該接收緩沖器300的頭指 針和尾指針相關聯(lián)的值在系統(tǒng)存儲器308的用戶援沖區(qū)306內(nèi)的預定 存儲器位置處被自動更新(通過存儲器接口電路305 ).這使得所述頭、 尾指針值能夠由處理器304直接訪問,該處理器可以利用所述存儲器 互連216進行存儲器引用.這又使得處理器304能夠例如讀取所述接 收緩沖器尾指針并且將其當前值與先前的接收緩沖器尾指針值進行比 較.當該值改變時,該處理器304就知道新的以太網(wǎng)楨數(shù)據(jù)已經(jīng)到達.
      后面的這一特征說明了根據(jù)本發(fā)明的各示例性實施例的處理系統(tǒng) 和方法利用高速緩存一致性存儲器互連訪問來實現(xiàn)所述NIC 218的高 效輪詢的能力。只要所述接收援沖器300內(nèi)的數(shù)據(jù)保持不變,所述處 理器304就可以讀取被保存在該處理器內(nèi)的該數(shù)據(jù)的高速緩存值.這 例如可能在沒有消息到達該NIC 218內(nèi)的時間段期間發(fā)生.當新的消 息從網(wǎng)絡到達時,數(shù)據(jù)被遞送到所迷接收緩沖器300中,并且所述接 收隊列填充電路使得該接收緩沖器300內(nèi)的數(shù)據(jù)改變值.當該接收緩 沖器300內(nèi)的值改變并且該數(shù)據(jù)被所述處理器304讀取時,所述數(shù)據(jù) 基于操作在所述系統(tǒng)中的高速緩存一致性共享存儲器協(xié)議而被傳輸?shù)?該處理器304,并且該處理器304隨后在其高速緩沖存儲器(圖3中未 示出)中觀察改變的值.這使得該處理器304檢測到新到達的消息. 注意,直到接收到消息為止,這種輪詢技術不需要從所述接收援沖器 300向所述輪詢處理器傳榆信息.
      除了實現(xiàn)高效輪詢之外,本發(fā)明的各示例性實施例還提供到其后 接收位置的高效數(shù)據(jù)傳輸.數(shù)據(jù)從駐留在所述接收緩沖器300內(nèi)的以 太網(wǎng)幀被傳輸?shù)揭粋€或多個用戶應用內(nèi)的一個或多個應用緩沖器(未 示出),較高級別軟件協(xié)議可以指定數(shù)據(jù)遞送指令,所述數(shù)據(jù)遞送指
      令被存儲在系統(tǒng)存儲器308中的遞送指令數(shù)據(jù)庫310內(nèi).這些遞送指 令可以從該數(shù)據(jù)庫310被選擇性地檢索,以便用于根據(jù)被嵌入在所述 以太網(wǎng)械內(nèi)的報頭信息來處理所接收的數(shù)據(jù).所述應用可以具有復雜 的數(shù)據(jù)遞送要求,其允許把到達的數(shù)據(jù)與標簽信息(或其他信息)進 行匹配,以便在所述接收緩沖器300中接收到數(shù)據(jù)之后確定該數(shù)據(jù)的 適當位置.例如,消息傳遞接口 (MPI)技術提供標簽和排序信息,所 述標簽和排序信息將被匹配以便確定要把到達的消息放置到哪個讀取 緩沖器中.在另一個例子中,報頭數(shù)據(jù)可以表明數(shù)據(jù)應當被遞送到的 特定TCP套接字.低級別的接收緩沖器處理軟件隨后可以把具有單個 拷貝的數(shù)據(jù)從所述接收緩沖器300遞送到適當?shù)哪繕宋恢?注意,盡 管該示例性實施例在單個接收緩沖器300的背景下描述了接收操作, 但是也可以以類似的方式實現(xiàn)多個接收援沖器以便例如支持分散操 作.
      可以被存儲在遞送指令數(shù)據(jù)庫310內(nèi)的數(shù)據(jù)遞送指令的另一個例 子是支持遠程直接存儲器訪問UDMA)的那些遞送指令.RDMA遞送指 令描述了可以把數(shù)據(jù)直接放到其中的緩沖區(qū)(未示出),比如包含在 虛擬存儲器中是連續(xù)的數(shù)據(jù)的物理頁面列表.進入的以太網(wǎng)分組可以 攜帶所述RDMA遞送指令的名稱、緩沖器偏移量、長度和實際數(shù)據(jù).利 用所引用的RDMA遞送指令,所述數(shù)據(jù)被遞送到開始于所期望的偏移量 的緩沖區(qū)內(nèi).該RDMA遞送指令可以被重復使用,直到所有數(shù)據(jù)都已被 成功地放置在該緩沖器中.此時,可以從所述RDMA遞送數(shù)據(jù)庫中除去 該指令.可以使用一個高層協(xié)議來向/從該遞送指令數(shù)據(jù)庫310安裝/ 除去RDMA遞送指令,并且隨后一個低層協(xié)議使用這些遞送指令來直接 遞送數(shù)據(jù).
      因此,當進入的以太網(wǎng)楨被處理時,所述處理器304可以使用從 所述以太網(wǎng)分組獲得的信息以及從所述遞送數(shù)據(jù)庫310獲得的信息以 便確定目標地址位置.DMA命令隨后被插入在DMA命令緩沖器320的 尾部,以便通過DMA引擎324發(fā)起適當?shù)腄MA傳輸.當DMA命令完成 時,DMA命令頭指針移動越過所述命令以表示命令完成.當已知DMA 命令完成時,就不再需要所述接收緩沖器300內(nèi)的已被拷貝到最終用 戶緩沖器位置處的數(shù)據(jù).于是可以把該接收援沖器的頭指針移動越過 這種數(shù)據(jù)而不會有數(shù)據(jù)丟失.
      在所述NIC 218內(nèi)的發(fā)送倒操作可以以與上面討論的接收側(cè)搮作 幾乎相同的方式來執(zhí)行.可以為該NIC 218提供一個存儲器映射的發(fā) 送緩沖器(未示出)或者多個存儲器映射的發(fā)送緩沖器,該NIC 218 具有被分配在系統(tǒng)存儲器308的用戶緩沖區(qū)306內(nèi)的相應的存儲器空 間,所述處理器304可以容易地監(jiān)視發(fā)送活動,例如通過將其高速緩 存的發(fā)送值(例如頭指針和尾指針)與所述系統(tǒng)存儲器308中的相應 值進行比較.實現(xiàn)具有存儲器映射的發(fā)送和接收緩沖器的NIC的本發(fā) 明的各示例性實施例提供了許多好處,其中的一些在上面被提到.除 了可以直接訪問緩沖器數(shù)據(jù)的諸如處理器304之類的處理器之外,運 行在主機操作系統(tǒng)上的程序線程(典型地是核心線程)可以通過存儲 器映射的命令和數(shù)據(jù)緩沖器直接與所述NIC 218通信以便進行發(fā)送和接收.
      例如,運行在主機操作系統(tǒng)內(nèi)的程序線程可以高效地發(fā)起發(fā)送側(cè) 或接收側(cè)DMA,并且檢測未決的發(fā)送側(cè)或接收側(cè)DMA操作的完成.通過 對存儲器映射的命令緩沖器320 (其還具有被分配在用戶緩沖器部分 306內(nèi)的相應的存儲器空間)進行寫入來發(fā)起DMA,并且通過從存儲器 映射的命令緩沖器320進行讀取來檢測DMA完成.針對命令完成的輪 詢是高效的,這是因為可以對DMA完成的狀態(tài)進行高速緩存以便在處 理器304內(nèi)進行重復讀取,并且直到該DMA的完成狀態(tài)改變值為止都 不需要把命令狀態(tài)從NIC 218傳輸?shù)教幚砥?04。每當表示該DMA的 完成狀態(tài)的數(shù)據(jù)值改變時,可以使得所述處理器的高速援存(未示出) 內(nèi)的相應數(shù)據(jù)無效。對于DMA完成狀態(tài)的任何后續(xù)讀取都導致新的有 效數(shù)據(jù)從所述NIC 218被傳輸?shù)剿鎏幚砥?04。因此,運行在所述 主機操作系統(tǒng)上的程序線程可以高效地發(fā)起DMA傳輸并且檢測該DMA 傳輸?shù)耐瓿?
      因此,根據(jù)本發(fā)明的一個一般示例性實施例, 一種用于在處理系 統(tǒng)中傳送數(shù)據(jù)的方法包括圖4的流程困中所示出的步驟.在圖中,在 步驟400提供多個處理單元,每個處理單元包括至少一個處理器和至 少一個系統(tǒng)存儲器.在步騍410通過與所述多個處理單元當中的每一 個相關聯(lián)的NIC在各處理單元之間發(fā)送及接收數(shù)據(jù),其中所述多個單 元當中的每一個還包括存儲器互連,所述NIC被直接連接到該存儲器 互連,并且所述NIC包括至少一個存儲器映射的緩沖器.
      如上面在背景技術部分中所述,與NIC數(shù)據(jù)傳輸相關聯(lián)的頁面釘 住也是SMP系統(tǒng)設計者(以及其他處理系統(tǒng)的設計者)所感興趣的問 題.本發(fā)明的各示例性實施例還通過提供存儲器映射的接收和發(fā)送緩 沖器來便于頁面釘住,所述存儲器映射的接收和發(fā)送緩沖器允許運行 在主機操作系統(tǒng)內(nèi)的核心程序針對基于DMA的拷貝高效地控制頁面釘 住,以用于網(wǎng)絡發(fā)送或網(wǎng)絡接收的目的.在一個示例性實施例中,運 行在所述主機操作系統(tǒng)上的一個或多個核心程序線程可以通過所述發(fā) 送和接收過程來調(diào)節(jié)大量數(shù)據(jù)的流動.這允許對所需要的頁面進行高 效的釘住和釋放,同時不需要釘住過多的頁面,正如下面相對于圖5 和圖6的流程圖所述.
      為了進行發(fā)送,在圖5中, 一個線程在步驟500執(zhí)行發(fā)送所需的 頁面釘住動作(例如向所述操作系統(tǒng)通知直到另行通知為止,某些 頁面將不被交換),確定已釘住的頁面的固定的物理地址(步驟502 ), 并且隨后發(fā)起DMA以便從已釘住的頁面發(fā)送數(shù)據(jù)(步驟504 ).當一個 線程在步驟506檢測到消息發(fā)送完成時(例如通過識別出與所述存儲 器映射的發(fā)送援沖器相關聯(lián)的值的改變,比如頭指針值的改變),該 線程隨后可以在步驟508釋放已經(jīng)被發(fā)送的頁面.在必要時可以重復 圖5中所示出的過程(順序地或者并行地重復,例如以流水線的方式), 從而使得在檢測DMA發(fā)送進展時,可以按照需要釘住新的頁面而不會 不必要地釘住過多頁面.
      為了進行接收,在圖6中, 一個線程在步驟600執(zhí)行接收所需的 頁面釘住動作,確定已釘住頁面的固定的物理地址(步驟602 ),隨后 發(fā)起DMA以便把所接收的數(shù)據(jù)拷貝到所釘住的位置(步驟604 ).當一 個線程在步驟606檢測到消息接收完成時(例如通過檢測與所述存儲 器映射的接收緩沖器相關聯(lián)的值的改變,比如尾指針值的改變),該 線程在步驟608于是可以在隨后基于如上所述的遞送指令把拷貝到所 述已釘住頁面的數(shù)據(jù)遞送到例如應用緩沖器之后釋放所述頁面.可以 重復圖6中所示出的過程(順序地或者并行地重復,例如以流水線的 方式),從而使得在檢測DMA接收進展時,可以按照需要釘住新的頁 面而不會不必要地釘住過多頁面.
      可以利用通過圖2的網(wǎng)絡發(fā)送消息的協(xié)議來協(xié)調(diào)發(fā)送倒與接收側(cè) 進展.例如,接收NIC 218可以釘住與其接收倒緩沖器300相關聯(lián)的
      頁面.該接收NIC 218隨后可以通過發(fā)送一條消息向發(fā)送器(例如不 同的SMP 200內(nèi)的另一個NIC 218)通知該接收NIC 218已經(jīng)準備 好把信息塊接收到該接收倒緩沖器300中。該發(fā)送器隨后可以釘住與 相應的發(fā)送側(cè)緩沖器相關聯(lián)的頁面.隨后可以利用DMA來發(fā)送數(shù)據(jù), 以便把來自發(fā)送用戶的緩沖器的信息拷貝到所述網(wǎng)絡.可以利用DMA 把所接收的數(shù)據(jù)從所述NIC的接收緩沖器300拷貝到用戶緩沖區(qū)306 內(nèi)的接收用戶的緩沖器.在拷貝完成之后,所述接收NIC可以釋放與 所述接收緩沖器300相關聯(lián)的頁面,并且發(fā)送一條消息給所述發(fā)送NIC 以表明接收完成并且所述發(fā)送側(cè)緩沖器也可以被釋放.接收器和發(fā)送 器的頁面釘住、基于DMA的發(fā)送和基于DMA的接收、檢測DMA完成、 以及接收器和發(fā)送器的頁面釋放的這一循環(huán)都可以在沒有中斷或系統(tǒng) 調(diào)用的情況下執(zhí)行,這是因為所述各NIC被直接連接到其相應的存儲 器互連.該循環(huán)可以被重復,以便通過網(wǎng)絡移動大量數(shù)據(jù)而不會不必 要地釘住過多存儲器,也不會產(chǎn)生用于處理系統(tǒng)調(diào)用或中斷的昂貴開 銷。
      根據(jù)這些示例性實施例的系統(tǒng)和方法還可以被用來執(zhí)行其他功 能,例如,所述接收緩沖器300尤其可以被用來實現(xiàn)亂序遞送。例如, 可以推遲對第一以太網(wǎng)幀的處理,其中對于該笫一以太網(wǎng)幀的遞送指 令尚不可用,在第一幀的處理被推遲的同時,由所述NIC 218相對于 第一以太網(wǎng)幀隨后接收的笫二以太網(wǎng)幀可以被處理及遞送。與此同 時,可以由 一個更高級別的應用把遞送指令插入到用于笫一以太網(wǎng)楨 的遞送指令數(shù)據(jù)庫310中.接收處理隨后可以根據(jù)所提供的指令來遞 送該第一以太網(wǎng)幀.
      因此,根據(jù)各示例性實施例, 一個核心模式幫助器線程可以訪問 SMP操作系統(tǒng)數(shù)據(jù)結構以及直接與處在前端總線上的NIC通信.使用核 心模式線程使得根據(jù)這些示例性實施例的處理系統(tǒng)和方法能夠執(zhí)行整 個釘住、發(fā)送/接收數(shù)據(jù)、釋放循環(huán),而不會在輪詢期間浪費總線周期 并且不會在例如I/O總線上使用昂貴的中斷.
      前面對本發(fā)明的各示例性實施例的描述提供了說明和描述,但是 其不打算是窮舉的或者把本發(fā)明限制為所公開的精確形式.許多修改 和變型根據(jù)上面的教導是可能的,或者可以在實踐本發(fā)明的過程中獲 得。后面的權利要求書及其等同物限定本發(fā)明的范閨.
      權利要求
      1、一種處理系統(tǒng),包括多個處理單元(200),每個所述處理單元(200)包括至少一個處理器(212)和至少一個系統(tǒng)存儲器(214);以及網(wǎng)絡接口控制器(NIC,218),其與所述多個處理單元(200)當中的每一個相關聯(lián),以用于在所述各處理單元(200)之間發(fā)送和接收數(shù)據(jù);其中,所述多個單元當中的每一個進一步包括存儲器互連(216),所述NIC(218)被直接連接到該存儲器互連,并且所述NIC(218)包括至少一個存儲器映射的緩沖器(300)。
      2、 根據(jù)權利要求l所述的系統(tǒng),其中,所述NIC (218)還包括 其中,所述至少一個存儲器映射的緩沖器(300 )是存儲器映射的發(fā)送緩沖器和存儲器映射的接收緩沖器的其中之一,其中所述至少一 個系統(tǒng)存儲器(214)的一部分被分配用于對存儲器映射的發(fā)送緩沖器 和存儲器映射的接收緩沖器的所述至少其中之一進行存儲器映射.
      3、 根據(jù)權利要求2所述的系統(tǒng),其中,所述存儲器映射的發(fā)送緩 沖器和所述存儲器映射的接收緩沖器的所述至少其中之一是具有頭指 針和尾指針的循環(huán)隊列,并且其中所述頭指針和所述尾指針的當前值 被映射到所述系統(tǒng)存儲器(214)內(nèi)的預定位置(306 ).
      4、 根據(jù)權利要求3所述的系統(tǒng),其中,存儲器映射的發(fā)送緩沖器 和存儲器映射的接收緩沖器的所述至少其中之一是存儲器映射的接收 緩沖器(300 ),并且其中所述至少一個處理器(212)把所述頭指針 和所述尾指針的其中之一的先前存儲的值與所述頭指針和所述尾指針 的所述其中之一的相應的當前值進行比較,以作為用于所述存儲器映 射的接收緩沖器(300 )的輪詢機制.
      5、 根據(jù)權利要求3所述的系統(tǒng),其中,所述至少一個處理器(212) 把所述頭指針和所述尾指針的至少其中之一的先前存儲的值與所述頭 指針和所述尾指針的所述至少其中之一的相應的當前值進行比較,以 便確定是否要釋放所述系統(tǒng)存儲器(214)中的一個或多個頁面.
      6、 根據(jù)權利要求l所述的系統(tǒng),還包括1/0互連(240 ) , 1/0設備(230 )通過該I/0互連(240)與所述 至少一個處理器(212)和至少一個系統(tǒng)存儲器(214)通信;以及 1/0適配器(238 ),用于把所述I/0互連(240)連接到所述存儲 器互連(216).
      7、 根據(jù)權利要求l所述的系統(tǒng),其中,所述系統(tǒng)存儲器(214)還 包括遞送指令數(shù)據(jù)庫(310),并且其中存儲器映射的發(fā)送緩沖器和存 儲器映射的接收緩沖器的所述至少其中之一是存儲器映射的接收援沖 器(300 ),從而所述至少一個處理器(212)可操作用于根據(jù)來自所 述遞送指令數(shù)據(jù)庫(310)的指令來轉(zhuǎn)發(fā)在所述存儲器映射的接收緩沖 器中接收到的數(shù)據(jù).
      8、 根據(jù)權利要求7所述的系統(tǒng),其中,所述處理器(212)根據(jù)來 自所述遞送指令數(shù)據(jù)庫(310 )的所述指令執(zhí)行對所述數(shù)據(jù)的直接存儲 器訪問(DMA)傳輸.
      9、 根據(jù)權利要求6所述的系統(tǒng),還包括 運行在所述至少一個處理器(212)上的操作系統(tǒng)應用; 在所述操作系統(tǒng)下操作的核心模式幫助器線程,其可以訪問操作系統(tǒng)數(shù)據(jù)結構并且可以與所述NIC (218)直接通信,其中,所述核心模式幫助器線程在不中斷所述I/0互連(240 )的 情況下執(zhí)行釘住、發(fā)送/接收數(shù)據(jù)、釋放循環(huán).
      10、 一種用于在處理系統(tǒng)中傳送數(shù)據(jù)的方法,包括以下步琛 提供(400 )多個處理單元(200 ),每個所述處理單元包括至少一個處理器(212)和至少一個系統(tǒng)存儲器(214);以及通過與所述多個處理單元當中的每一個相關聯(lián)的網(wǎng)絡接口控制器(NIC, 218)在所述各處理單元(200)之間發(fā)送和接收數(shù)據(jù)(402 ); 其中,所述多個單元(200 )當中的每一個進一步包括存儲器互連(216),所述NIC (218)被直接連接到該存儲器互連,并且所述NIC(218)包括至少一個存儲器映射的緩沖器(300).
      全文摘要
      描述了用于提供具有存儲器映射的緩沖器(300)的網(wǎng)絡接口控制器(NIC,218)的系統(tǒng)和方法。一種處理系統(tǒng)包括多個處理單元(200),每個所述處理單元包括至少一個處理器(212)和至少一個系統(tǒng)存儲器(214)。NI C(218)與每個所述處理單元(200)相關聯(lián),以用于在所述各處理單元(200)之間發(fā)送和接收數(shù)據(jù)。每一個所述單元(200)進一步包括存儲器互連(216),所述NIC(218)被直接連接到該存儲器互連,并且所述NIC(218)包括至少一個存儲器映射的緩沖器(300)。
      文檔編號H04L12/54GK101115054SQ200710137000
      公開日2008年1月30日 申請日期2007年7月26日 優(yōu)先權日2006年7月26日
      發(fā)明者E·厄爾特利, M·S·施蘭斯克 申請人:惠普開發(fā)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1