網(wǎng)絡(luò)接口的制作方法
【專利摘要】本說明書中公開了一種低延時網(wǎng)絡(luò)接口以及補(bǔ)充的數(shù)據(jù)管理協(xié)議。所述數(shù)據(jù)管理協(xié)議通過將控制數(shù)據(jù)與網(wǎng)絡(luò)數(shù)據(jù)整合從而減少了網(wǎng)絡(luò)接口和對應(yīng)的主機(jī)計(jì)算系統(tǒng)之間的專用的控制交換。網(wǎng)絡(luò)接口還可以促進(jìn)端口轉(zhuǎn)發(fā)和數(shù)據(jù)記錄而不需要外部網(wǎng)絡(luò)交換機(jī)。
【專利說明】
網(wǎng)絡(luò)接口
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種用于計(jì)算系統(tǒng)的網(wǎng)絡(luò)接口以及管理數(shù)據(jù)通信的方法。
【背景技術(shù)】
[0002 ]網(wǎng)絡(luò)接口有助于計(jì)算系統(tǒng)和數(shù)據(jù)網(wǎng)絡(luò)之間的通信。典型的網(wǎng)絡(luò)接口具有與外部網(wǎng)絡(luò)建立通信連接的專用硬件。該硬件可以與主機(jī)計(jì)算系統(tǒng)的其他部件集成。專用的固件和/或軟件也可以并入網(wǎng)絡(luò)接口。網(wǎng)絡(luò)接口的常用名包括網(wǎng)絡(luò)接口卡(NIC)、網(wǎng)絡(luò)接口控制器、網(wǎng)絡(luò)接口適配器和網(wǎng)絡(luò)接口單元。
[0003]支持網(wǎng)絡(luò)功能的計(jì)算系統(tǒng)通常具有至少一個專用的網(wǎng)絡(luò)接口。網(wǎng)絡(luò)接口在主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線(例如PCI或PCI快速總線)和外部數(shù)據(jù)網(wǎng)絡(luò)(例如以太網(wǎng))之間提供橋接。網(wǎng)絡(luò)接口可以與其他系統(tǒng)部件(例如與系統(tǒng)主板集成的“板上” (on-board)網(wǎng)絡(luò)控制器)集成或者被提供為模塊化部件(例如PC1-e卡)。
[0004]常規(guī)的網(wǎng)絡(luò)接口具有兩個主要功能:接收來自外部網(wǎng)絡(luò)的數(shù)據(jù);以及將數(shù)據(jù)從主機(jī)計(jì)算系統(tǒng)傳輸?shù)酵獠烤W(wǎng)絡(luò)。在這兩種操作期間,網(wǎng)絡(luò)接口與主機(jī)計(jì)算系統(tǒng)的系統(tǒng)總線交互以管理數(shù)據(jù)交換。這些交互遵照允許主機(jī)計(jì)算系統(tǒng)執(zhí)行的軟件應(yīng)用與網(wǎng)絡(luò)接口交互的協(xié)議(通常由網(wǎng)絡(luò)接口限定并且通過用于網(wǎng)絡(luò)接口的驅(qū)動器實(shí)施)。
[0005]常規(guī)的接口驅(qū)動協(xié)議通常以通信延時為代價而優(yōu)先考慮資源最小化。使用常規(guī)的驅(qū)動協(xié)議在網(wǎng)絡(luò)接口和主機(jī)計(jì)算系統(tǒng)之間的數(shù)據(jù)事務(wù)通常包括控制消息交換以協(xié)調(diào)數(shù)據(jù)傳輸(例如數(shù)據(jù)分配指針和讀取確認(rèn)的交換)。這會產(chǎn)生推遲系統(tǒng)間的網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)娘@著延時。
【發(fā)明內(nèi)容】
[0006]第一方面,本發(fā)明提供一種數(shù)據(jù)接收方法,包括通過網(wǎng)絡(luò)接口接收來自外部網(wǎng)絡(luò)的數(shù)據(jù),并且通過內(nèi)部系統(tǒng)總線將所述數(shù)據(jù)傳輸?shù)街鳈C(jī)計(jì)算系統(tǒng)內(nèi)的存儲器中。網(wǎng)絡(luò)接口規(guī)定主機(jī)計(jì)算系統(tǒng)存儲器內(nèi)的數(shù)據(jù)的分配,而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。
[0007]第二方面,所述數(shù)據(jù)接收方法包括:
[0008]通過網(wǎng)絡(luò)接口接收來自外部網(wǎng)絡(luò)的多個數(shù)據(jù)幀,并且
[0009]通過內(nèi)部系統(tǒng)總線將每個數(shù)據(jù)幀從所述網(wǎng)絡(luò)接口傳輸?shù)皆谥鳈C(jī)計(jì)算系統(tǒng)的存儲器中分配的接收緩存區(qū),
[0010]所述網(wǎng)絡(luò)接口規(guī)定所述接收緩存區(qū)內(nèi)的數(shù)據(jù)幀的分配,而不受所述主機(jī)計(jì)算系統(tǒng)的干預(yù)。
[0011]在一個實(shí)施方式中,所述方法包括采用開環(huán)寫入?yún)f(xié)議將每個接收的數(shù)據(jù)幀從所述網(wǎng)絡(luò)接口傳輸?shù)剿鼋邮站彺鎱^(qū)。
[0012]在一個實(shí)施方式中,所述方法包括將接收的數(shù)據(jù)幀相繼寫入所述接收緩存區(qū)內(nèi)的連續(xù)的存儲器范圍。
[0013]在一個實(shí)施方式中,所述方法包括在用于多個數(shù)據(jù)幀的存儲容量的連續(xù)存儲器中分配所述接收緩存區(qū)。
[0014]在一個實(shí)施方式中,所述方法包括將分配的存儲器分成多個具有相同存儲容量的接連單獨(dú)可尋址的緩存槽(slot)。
[0015]在一個實(shí)施方式中,所述方法包括將接收的數(shù)據(jù)幀接連地寫到所述接收緩存區(qū)內(nèi)的每個緩存槽。
[0016]在一個實(shí)施方式中,所述方法包括遞歸地覆寫所述接收緩存區(qū),而不需要所述主機(jī)計(jì)算系統(tǒng)的讀取確認(rèn)。
[0017]在一個實(shí)施方式中,所述方法包括將超出所述緩存槽的所述存儲容量的已接收的數(shù)據(jù)幀分成片段,并且將幀片段分配到所述接收緩存區(qū)內(nèi)的多個接連的緩存槽。
[0018]在一個實(shí)施方式中,所述方法包括生成控制數(shù)據(jù),所述控制數(shù)據(jù)通過限定在接連的緩存槽中的幀數(shù)據(jù)的關(guān)系便于片段化的數(shù)據(jù)幀的重構(gòu)。
[0019]在一個實(shí)施方式中,所述方法包括將所述控制數(shù)據(jù)附加在每個幀片段的結(jié)尾處,使得所述控制數(shù)據(jù)在與幀片段相同的總線事務(wù)中寫在對應(yīng)的緩存槽的結(jié)尾。
[0020]在一個實(shí)施方式中,所述控制數(shù)據(jù)還限定分配給對應(yīng)的緩存槽的所述幀片段的長度。
[0021]第三方面,本發(fā)明提供了一種網(wǎng)絡(luò)接口,該網(wǎng)絡(luò)接口包括網(wǎng)絡(luò)側(cè)、主機(jī)側(cè)和控制系統(tǒng),所述網(wǎng)絡(luò)側(cè)接收來自外部數(shù)據(jù)網(wǎng)絡(luò)的數(shù)據(jù),所述主機(jī)側(cè)通過內(nèi)部系統(tǒng)總線將所述數(shù)據(jù)傳送到主機(jī)計(jì)算系統(tǒng)內(nèi)的存儲器中,所述控制系統(tǒng)規(guī)定數(shù)據(jù)在主機(jī)計(jì)算系統(tǒng)存儲器中的分配,而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。
[0022]第四方面,所述網(wǎng)絡(luò)接口包括:
[0023]網(wǎng)絡(luò)側(cè),所述網(wǎng)絡(luò)側(cè)接收來自外部數(shù)據(jù)網(wǎng)絡(luò)的多個數(shù)據(jù)幀,
[0024]主機(jī)側(cè),所述主機(jī)側(cè)通過主機(jī)內(nèi)部系統(tǒng)總線將所述數(shù)據(jù)幀傳送到在主機(jī)計(jì)算系統(tǒng)的存儲器內(nèi)分配的接收緩存區(qū),以及
[0025]控制系統(tǒng),所述控制系統(tǒng)規(guī)定所述接收緩存區(qū)內(nèi)的數(shù)據(jù)幀的分配,而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。
[0026]在一個實(shí)施方式中,所述網(wǎng)絡(luò)接口包括寫入控制器,所述寫入控制器使用開環(huán)寫入?yún)f(xié)議將每個接收的數(shù)據(jù)幀傳送到所述接收緩存區(qū)。
[0027]在一個實(shí)施方式中,所述寫入控制器被配置成將所述數(shù)據(jù)幀相繼寫入所述接收緩存區(qū)內(nèi)的連續(xù)的存儲器范圍。
[0028]在一個實(shí)施方式中,所述網(wǎng)絡(luò)接口包括緩存區(qū)管理模塊,所述緩存區(qū)管理模塊在分配給所述接收緩存區(qū)的連續(xù)的存儲器中分配具有相同存儲容量的多個接連單獨(dú)可尋址的緩存槽。
[0029]在一個實(shí)施方式中,所述網(wǎng)絡(luò)接口包括寫入控制器,所述寫入控制器將接收的數(shù)據(jù)幀接連地傳輸?shù)剿鼋邮站彺鎱^(qū)內(nèi)的每個緩存槽。
[0030]在一個實(shí)施方式中,所述寫入控制器遞歸地覆寫所述接收緩存區(qū),而不需要所述主機(jī)計(jì)算系統(tǒng)的讀取確認(rèn)。
[0031]在一個實(shí)施方式中,所述網(wǎng)絡(luò)接口包括幀管理模塊,所述幀管理模塊將超出所述緩存槽的存儲容量的已接收的數(shù)據(jù)幀分成片段并且將幀片段分配到所述接收緩存區(qū)內(nèi)的多個接連的緩存槽。
[0032]在一個實(shí)施方式中,所述幀管理模塊生成控制數(shù)據(jù),所述控制數(shù)據(jù)通過限定接連的緩存槽中的幀數(shù)據(jù)的關(guān)系來促進(jìn)片段化的數(shù)據(jù)幀的重構(gòu)。
[0033]在一個實(shí)施方式中,所述寫入控制器將所述控制數(shù)據(jù)附加在每個幀片段的結(jié)尾處使得控制數(shù)據(jù)在與幀片段相同的總線事務(wù)中寫到對應(yīng)的緩存槽的結(jié)尾處。
[0034]在一個實(shí)施方式中,所述控制數(shù)據(jù)還限定分配給所述對應(yīng)的緩存槽的所述幀片段的長度。
[0035]第五方面,本發(fā)明提供了一種緩存區(qū)訪問協(xié)議,包括:
[0036]從存儲器緩存區(qū)內(nèi)的多個緩存槽讀取寫入迭代計(jì)數(shù)器,所述寫入迭代計(jì)數(shù)器限定上次在相應(yīng)緩存槽寫入數(shù)據(jù)的時刻,
[0037]確定寫入地址,所述寫入地址限定接收數(shù)據(jù)的下一個緩存槽,所述寫入地址是根據(jù)所述寫入迭代計(jì)數(shù)器確定的,并且
[0038]循環(huán)地輪詢所述寫入地址以檢測對應(yīng)的緩存槽的寫入更新。
[0039]第六方面,所述緩存區(qū)訪問協(xié)議包括:
[0040]訪問循環(huán)緩存區(qū)內(nèi)的多個數(shù)據(jù)緩存槽并且從每個訪問的緩存槽讀取寫入迭代計(jì)數(shù)器,所述寫入迭代計(jì)數(shù)器在數(shù)據(jù)最終寫入相應(yīng)緩存槽時限定寫入迭代,
[0041]確定用于所述循環(huán)緩存區(qū)的寫入地址,所述寫入地址限定待用數(shù)據(jù)覆寫的下一個緩存槽,所述寫入地址通過分配給鄰近的緩存槽的所述寫入迭代計(jì)數(shù)器的轉(zhuǎn)變被限定,并且
[0042]循環(huán)地輪詢所述寫入地址以檢測寫入更新,所述寫入更新是根據(jù)對于對應(yīng)的緩存槽的所述寫入迭代計(jì)數(shù)器的變化確定的。
[0043]在一個實(shí)施方式中,所述協(xié)議包括:
[0044]從所述循環(huán)緩存區(qū)內(nèi)的指定的緩存槽復(fù)制寫入迭代計(jì)數(shù)器并且根據(jù)復(fù)制的寫入迭代計(jì)數(shù)器創(chuàng)建讀取迭代計(jì)數(shù)器,并且
[0045]將所述讀取迭代計(jì)數(shù)器與分配給所述循環(huán)緩存區(qū)內(nèi)的接連的緩存槽的多個寫入迭代計(jì)數(shù)器比較以識別所述寫入地址。
[0046]在一個實(shí)施方式中,所述協(xié)議包括:
[0047]在所述循環(huán)緩存區(qū)內(nèi)的指定的緩存槽初始化讀取指針,
[0048]將分配給所述指定的緩存槽的所述寫入迭代計(jì)數(shù)器與所述讀取迭代計(jì)數(shù)器比較,并且
[0049]增加所述讀取指針以與所述循環(huán)緩存區(qū)內(nèi)的接連的緩存槽對準(zhǔn),直至所述讀取指針與寫入地址一致。
[0050]在一個實(shí)施方式中,所述協(xié)議包括在檢測到寫入更新之后,增加所述讀取指針以與相繼的緩存槽對準(zhǔn)。
[0051]在一個實(shí)施方式中,所述協(xié)議包括維持用于所述循環(huán)緩存區(qū)的循環(huán)計(jì)數(shù)器,所述循環(huán)計(jì)數(shù)器限定當(dāng)前的寫入迭代,所述循環(huán)計(jì)數(shù)器在每個寫入迭代完成時增加。
[0052]在一個實(shí)施方式中,所述協(xié)議包括隨著到相應(yīng)的緩存槽的每個寫入事務(wù),將所述循環(huán)計(jì)數(shù)器寫入所述循環(huán)緩存區(qū)內(nèi)的每個緩存槽,所述循環(huán)計(jì)數(shù)器提供寫入迭代計(jì)數(shù)器用于讀取同步。
[0053]在一個實(shí)施方式中,所述協(xié)議包括:
[0054]在檢測到寫入更新時,從與所述寫入地址對應(yīng)的緩存槽提取數(shù)據(jù),
[0055]在提取所述數(shù)據(jù)后檢查所述寫入迭代計(jì)數(shù)器以確認(rèn)提取過程,并且
[0056]如果在所述寫入更新的檢測之后所述寫入迭代計(jì)數(shù)器已經(jīng)變化,則生成讀取錯誤。
[0057]在一個實(shí)施方式中,所述協(xié)議包括:
[0058]在寫入更新后從與所述寫入地址對應(yīng)的當(dāng)前緩存槽中讀取長度參考,并且
[0059]在所述長度參考表明所述當(dāng)前緩存槽包含幀片段時,將來自所述當(dāng)前緩存槽的數(shù)據(jù)與來自相繼的緩存槽的數(shù)據(jù)組合。
[0060]第七方面,本發(fā)明提供一種緩存區(qū)訪問系統(tǒng),包括:
[0061 ]參考模塊,所述參考模塊從存儲器緩存區(qū)內(nèi)的多個數(shù)據(jù)緩存槽讀取寫入迭代計(jì)數(shù)器,寫入迭代計(jì)數(shù)器限定上次在相應(yīng)緩存槽中寫入數(shù)據(jù)的時刻,
[0062]同步模塊,所述同步模塊確定寫入地址,所述寫入地址限定接收數(shù)據(jù)的下一個緩存槽,所述寫入地址是根據(jù)所述寫入迭代計(jì)數(shù)器確定的,以及
[0063]寫入監(jiān)測器,所述寫入監(jiān)測器循環(huán)地輪詢所述寫入地址以檢測對應(yīng)的緩存槽的寫入更新。
[0064]第八方面,所述緩存區(qū)訪問系統(tǒng)包括:
[0065]參考模塊,所述參考模塊訪問循環(huán)緩存區(qū)內(nèi)的多個數(shù)據(jù)緩存槽并且評估來自每個訪問的緩存槽的寫入迭代計(jì)數(shù)器,所述寫入迭代計(jì)數(shù)器限定上次在相應(yīng)緩存槽中寫入數(shù)據(jù)時的寫入迭代,
[0066]同步模塊,所述同步模塊確定循環(huán)緩存區(qū)的寫入地址,所述寫入地址限定待用數(shù)據(jù)覆寫的下一個緩存槽,以及
[0067]寫入監(jiān)測器,所述寫入監(jiān)測器循環(huán)地輪詢寫入地址以檢測寫入更新,所述寫入更新是根據(jù)對應(yīng)的緩存槽的寫入迭代計(jì)數(shù)器的變化確定的。
[0068]在一個實(shí)施方式中,所述參考模塊從所述循環(huán)緩存區(qū)內(nèi)的指定的緩存槽復(fù)制寫入迭代計(jì)數(shù)器并且根據(jù)復(fù)制的寫入迭代計(jì)數(shù)器創(chuàng)建讀取迭代計(jì)數(shù)器,并且所述同步模塊將所述讀取迭代計(jì)數(shù)器與分配給所述循環(huán)緩存區(qū)內(nèi)的接連的緩存槽的多個寫入迭代計(jì)數(shù)器比較以識別所述寫入地址。
[0069]在一個實(shí)施方式中,所述同步模塊在所述循環(huán)緩存區(qū)內(nèi)的指定的緩存槽初始化讀取指針,將分配給指定的緩存槽的所述寫入迭代計(jì)數(shù)器與所述讀取迭代計(jì)數(shù)器比較,并且增加所述讀取指針以與所述循環(huán)緩存區(qū)內(nèi)的相繼的緩存槽對準(zhǔn)直至所述讀取指針與所述寫入地址一致。
[0070]在一個實(shí)施方式中,在所述寫入監(jiān)測器檢測到寫入更新時,所述同步模塊增加所述讀取指針以與所述緩存區(qū)內(nèi)的相繼的緩存槽對準(zhǔn)。
[0071]在一個實(shí)施方式中,所述系統(tǒng)包括提取模塊,所述提取模塊在檢測到寫入更新時從與所述寫入地址對應(yīng)的緩存槽提取數(shù)據(jù),在提取數(shù)據(jù)后檢查所述寫入迭代計(jì)數(shù)器以確認(rèn)提取過程,并且如果在所述寫入更新的檢測之后所述寫入迭代計(jì)數(shù)器已經(jīng)變化,則生成讀取錯誤。
[0072]在一個實(shí)施方式中,所述系統(tǒng)包括幀重構(gòu)模塊,所述幀重構(gòu)模塊在寫入更新后從與所述寫入地址對應(yīng)的當(dāng)前緩存槽讀取長度參考,并且在所述長度參考表明相應(yīng)緩存槽包含來自單個幀的數(shù)據(jù)時,將來自所述當(dāng)前緩存槽的數(shù)據(jù)與來自相繼的緩存槽的數(shù)據(jù)組合。
[0073]第九方面,本發(fā)明提供一種數(shù)據(jù)傳輸方法,包括將輸出網(wǎng)絡(luò)數(shù)據(jù)緩存在主機(jī)計(jì)算系統(tǒng)處理器內(nèi),并且將緩存的輸出網(wǎng)絡(luò)數(shù)據(jù)直接寫入網(wǎng)絡(luò)接口內(nèi)的專用的存儲器中,所述專用的存儲器映射到所述主機(jī)計(jì)算系統(tǒng)內(nèi)的本地存儲器分級體系。
[0074]第十方面,所述數(shù)據(jù)傳輸方法包括:
[0075]將來自網(wǎng)絡(luò)接口的專用的存儲器映射到主機(jī)計(jì)算系統(tǒng)內(nèi)的本地存儲器分級體系,
[0076]將輸出網(wǎng)絡(luò)數(shù)據(jù)緩存在主機(jī)計(jì)算系統(tǒng)處理器的寫入組合緩存區(qū)內(nèi),
[0077]將來自所述寫入組合緩存區(qū)的所述輸出網(wǎng)絡(luò)數(shù)據(jù)寫入所述專用的存儲器,并且
[0078]將數(shù)據(jù)從所述網(wǎng)絡(luò)接口傳輸?shù)酵獠烤W(wǎng)絡(luò)。
[0079]在一個實(shí)施方式中,所述方法包括將幀參考寫入所述網(wǎng)絡(luò)接口內(nèi)的分立的控制寄存器以發(fā)起向外部網(wǎng)絡(luò)的數(shù)據(jù)幀的傳輸,所述幀參考限定了所述專用的存儲器中的對應(yīng)的幀的位置。
[0080]在一個實(shí)施方式中,所述方法包括將所述分立的控制寄存器映射到所述主機(jī)計(jì)算系統(tǒng)的基地址寄存器零。
[0081]在一個實(shí)施方式中,所述方法包括將所述專用的網(wǎng)絡(luò)接口存儲器映射到所述主機(jī)計(jì)算系統(tǒng)的基地址寄存器二,并且使能所映射的存儲器的寫入組合。
[0082]在一個實(shí)施方式中,所述方法包括從專用的存儲器中提取單獨(dú)的數(shù)據(jù)幀用于傳輸?shù)酵獠烤W(wǎng)絡(luò),所述數(shù)據(jù)幀由寫入到所述分立的控制寄存器的幀參考和在所述專用的存儲器中與所述數(shù)據(jù)幀一起寫入的幀長度限定。
[0083]在一個實(shí)施方式中,所述方法包括將控制數(shù)據(jù)與所述輸出網(wǎng)絡(luò)數(shù)據(jù)一起寫入所述專用的存儲器,所述控制數(shù)據(jù)包括限定對應(yīng)數(shù)據(jù)幀的大小的幀長度。
[0084]在一個實(shí)施方式中,所述方法包括在與所述輸出網(wǎng)絡(luò)數(shù)據(jù)一起寫入到所述專用的存儲器的所述控制數(shù)據(jù)中包含反饋描述符,所述反饋描述符便于從所述網(wǎng)絡(luò)接口到所述主機(jī)計(jì)算系統(tǒng)的確認(rèn)消息的傳輸。
[0085]在一個實(shí)施方式中,所述方法包括將幀標(biāo)識符從專用的存儲器寫入到主機(jī)計(jì)算系統(tǒng)存儲器內(nèi)的分配的反饋寄存器,以報(bào)告從所述網(wǎng)絡(luò)接口到外部網(wǎng)絡(luò)的對應(yīng)的數(shù)據(jù)幀的傳輸。
[0086]在一個實(shí)施方式中,所述方法包括在包含對應(yīng)的數(shù)據(jù)幀提取的整合的存儲器訪問事務(wù)中,從所述專用的存儲器中提取限定主機(jī)計(jì)算系統(tǒng)反饋寄存器的幀標(biāo)識符和參考地址。
[0087]第十一方面,本發(fā)明提供一種數(shù)據(jù)傳輸系統(tǒng),包括存儲器管理模塊和寫入控制器,所述存儲器管理模塊將來自網(wǎng)絡(luò)接口的存儲器映射到主機(jī)計(jì)算系統(tǒng)內(nèi)的本地存儲器分級體系,所述寫入控制器在將所述輸出網(wǎng)絡(luò)數(shù)據(jù)直接寫入映射的存儲器之前,將輸出網(wǎng)絡(luò)數(shù)據(jù)緩存在主機(jī)計(jì)算系統(tǒng)處理器內(nèi)。
[0088]第十二方面,所述數(shù)據(jù)傳輸系統(tǒng)包括:
[0089]存儲器管理模塊,所述存儲器管理模塊將來自網(wǎng)絡(luò)接口的專用的存儲器映射到主機(jī)計(jì)算系統(tǒng)內(nèi)的本地存儲器分級體系,以及
[0090]寫入控制器,所述寫入控制器在將輸出網(wǎng)絡(luò)數(shù)據(jù)寫入專用的網(wǎng)絡(luò)接口存儲器之前將輸出網(wǎng)絡(luò)數(shù)據(jù)緩存在寫入組合緩存區(qū)內(nèi)。
[0091]在一個實(shí)施方式中,所述系統(tǒng)包括控制模塊,所述控制模塊將幀參考寫入所述網(wǎng)絡(luò)接口內(nèi)的分立的控制寄存器以發(fā)起從所述網(wǎng)絡(luò)接口到所述外部網(wǎng)絡(luò)的數(shù)據(jù)幀的傳輸,所述幀參考限定對應(yīng)幀在所述專用的存儲器中的位置。
[0092]在一個實(shí)施方式中,所述存儲器管理模塊將所述分立的控制寄存器映射到所述主機(jī)計(jì)算系統(tǒng)的基地址寄存器零。
[0093]在一個實(shí)施方式中,所述存儲器管理模塊將專用的網(wǎng)絡(luò)接口存儲器映射到所述主機(jī)計(jì)算系統(tǒng)的基地址寄存器二,并且使能所映射的存儲器的寫入組合。
[0094]在一個實(shí)施方式中,所述系統(tǒng)包括傳輸引擎,所述傳輸引擎從所述專用的存儲器中提取單獨(dú)的數(shù)據(jù)幀用于傳輸?shù)酵獠烤W(wǎng)絡(luò),所述數(shù)據(jù)幀通過寫入到所述分立的控制寄存器的對應(yīng)的幀參考和與數(shù)據(jù)幀一起寫入所述專用的存儲器中的幀長度被限定。
[0095]在一個實(shí)施方式中,所述系統(tǒng)包括控制模塊,所述控制模塊在所述寫入控制器將所述網(wǎng)絡(luò)數(shù)據(jù)寫入所述專用的存儲器前將控制數(shù)據(jù)與輸出網(wǎng)絡(luò)數(shù)據(jù)組合,所述控制數(shù)據(jù)包括限定了對應(yīng)的數(shù)據(jù)幀的大小的幀長度。
[0096]在一個實(shí)施方式中,所述控制模塊將反饋描述符包含在與所述輸出網(wǎng)絡(luò)數(shù)據(jù)組合的控制數(shù)據(jù)中,所述反饋描述符有助于從所述網(wǎng)絡(luò)接口到所述主機(jī)計(jì)算系統(tǒng)的確認(rèn)消息的傳輸。
[0097]在一個實(shí)施方式中,所述系統(tǒng)包括通知引擎,所述通知引擎將幀標(biāo)識符從專用的存儲器寫入到主機(jī)計(jì)算系統(tǒng)存儲器內(nèi)的分配的反饋寄存器,以報(bào)告對應(yīng)的數(shù)據(jù)幀從所述網(wǎng)絡(luò)接口到外部網(wǎng)絡(luò)的傳輸。
[0098]在一個實(shí)施方式中,所述通知引擎在包括對應(yīng)的數(shù)據(jù)幀提取的整合的存儲器訪問事務(wù)中,從所述專用的存儲器提取限定所述主機(jī)計(jì)算系統(tǒng)反饋寄存器的幀標(biāo)識符和參考地址。
[0099]第十三方面,本發(fā)明提供一種網(wǎng)絡(luò)接口,包括多個數(shù)據(jù)端口和控制系統(tǒng),所述數(shù)據(jù)端口與外部數(shù)據(jù)網(wǎng)絡(luò)連接,所述控制系統(tǒng)管理在數(shù)據(jù)端口和主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線之間的數(shù)據(jù)交換,
[0100]所述控制系統(tǒng)包括記錄模塊,所述記錄模塊復(fù)制在所述系統(tǒng)總線和單獨(dú)的數(shù)據(jù)端口之間交換的數(shù)據(jù),并且將復(fù)制的數(shù)據(jù)傳輸?shù)街付ǖ挠涗浂丝凇?br>[0101]第十四方面,所述網(wǎng)絡(luò)接口包括:
[0102]網(wǎng)絡(luò)側(cè),所述網(wǎng)絡(luò)側(cè)與外部數(shù)據(jù)網(wǎng)絡(luò)連接以便于數(shù)據(jù)交換,所述網(wǎng)絡(luò)側(cè)具有多個數(shù)據(jù)端口,每個數(shù)據(jù)端口限定用于通信的數(shù)據(jù)通道,
[0103]主機(jī)側(cè),所述主機(jī)側(cè)與主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線連接以便于在所述網(wǎng)絡(luò)接口和所述主機(jī)計(jì)算系統(tǒng)之間的數(shù)據(jù)交換,以及
[0104]控制系統(tǒng),所述控制系統(tǒng)管理在所述網(wǎng)絡(luò)接口的所述網(wǎng)絡(luò)側(cè)和所述主機(jī)側(cè)之間的數(shù)據(jù)交換,所述控制系統(tǒng)包括記錄模塊,所述記錄模塊復(fù)制來自單獨(dú)的數(shù)據(jù)通道的數(shù)據(jù)并且將復(fù)制的數(shù)據(jù)傳輸?shù)街付ǖ挠涗浂丝凇?br>[0105]在一個實(shí)施方式中,所述網(wǎng)絡(luò)接口包括記錄接口,所述記錄接口便于所述記錄模塊的配置,所述記錄接口具有多個控制寄存器,所述控制寄存器限定通過所述記錄模塊復(fù)制的數(shù)據(jù)通道。
[0106]在一個實(shí)施方式中,所述網(wǎng)絡(luò)接口包括記錄控制器,所述記錄控制器將來自每個數(shù)據(jù)通道的數(shù)據(jù)分成接收流和發(fā)送流,所述記錄接口具有多個控制寄存器,所述控制寄存器限定通過所述記錄模塊復(fù)制的所述數(shù)據(jù)流。
[0107]在一個實(shí)施方式中,所述網(wǎng)絡(luò)接口包括記錄單元,所述記錄單元將來自多個數(shù)據(jù)端口的數(shù)據(jù)組合,所述記錄單元具有將組合的數(shù)據(jù)傳輸?shù)酵獠烤W(wǎng)絡(luò)的專用的記錄端口。
[0108]第十五方面,本發(fā)明提供一種數(shù)據(jù)記錄方法,包括自主地復(fù)制計(jì)算系統(tǒng)網(wǎng)絡(luò)接口內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)并且將復(fù)制的數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)接口的指定的記錄端口用于傳輸?shù)酵獠坑涗浵到y(tǒng)。
[0109]第十六方面,所述數(shù)據(jù)記錄方法包括:
[0110]使用具有多個數(shù)據(jù)端口的網(wǎng)絡(luò)接口在主機(jī)計(jì)算系統(tǒng)和外部數(shù)據(jù)網(wǎng)絡(luò)之間交換數(shù)據(jù),所述網(wǎng)絡(luò)接口與主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線連接,以及
[0111]從單獨(dú)的數(shù)據(jù)端口復(fù)制數(shù)據(jù)并且將復(fù)制的數(shù)據(jù)傳輸?shù)脚c所述網(wǎng)絡(luò)接口集成的指定的記錄端口。
[0112]在一個實(shí)施方式中,所述方法包括選擇單獨(dú)的數(shù)據(jù)端口用于記錄,所述數(shù)據(jù)端口是使用在所述網(wǎng)絡(luò)接口內(nèi)分配的專用的控制寄存器被選擇的。
[0113]在一個實(shí)施方式中,所述方法包括:
[0114]將在每個數(shù)據(jù)端口接收的數(shù)據(jù)分成接收流和發(fā)送流,并且
[0115]選擇單獨(dú)的數(shù)據(jù)流用于記錄,所述流是使用在所述網(wǎng)絡(luò)接口內(nèi)分配的專用的控制寄存器被選擇的。
[0116]在一個實(shí)施方式中,所述方法包括組合來自多個數(shù)據(jù)端口的數(shù)據(jù)并且將組合的數(shù)據(jù)從主機(jī)計(jì)算系統(tǒng)傳輸?shù)酵獠烤W(wǎng)絡(luò)。
[0117]第十七方面,本發(fā)明提供一種網(wǎng)絡(luò)接口,該網(wǎng)絡(luò)接口包括多個數(shù)據(jù)端口和控制系統(tǒng),所述控制系統(tǒng)管理在所述數(shù)據(jù)端口和主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線之間的數(shù)據(jù)交換,所述控制系統(tǒng)包括轉(zhuǎn)發(fā)模塊,所述轉(zhuǎn)發(fā)模塊在分立的數(shù)據(jù)端口之間直接傳輸數(shù)據(jù)而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。
[0118]第十八方面,所述網(wǎng)絡(luò)接口包括:
[0119]網(wǎng)絡(luò)側(cè),所述網(wǎng)絡(luò)側(cè)與外部數(shù)據(jù)網(wǎng)絡(luò)連接以便于數(shù)據(jù)交換,所述網(wǎng)絡(luò)側(cè)具有多個數(shù)據(jù)端口,
[0120]主機(jī)側(cè),所述主機(jī)側(cè)與主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線連接以便于在所述網(wǎng)絡(luò)接口和所述主機(jī)計(jì)算系統(tǒng)之間的數(shù)據(jù)交換,以及
[0121]控制系統(tǒng),所述控制系統(tǒng)管理在所述網(wǎng)絡(luò)接口的所述網(wǎng)絡(luò)側(cè)和所述主機(jī)側(cè)之間的數(shù)據(jù)交換,所述控制系統(tǒng)包括轉(zhuǎn)發(fā)模塊,所述轉(zhuǎn)發(fā)模塊從網(wǎng)絡(luò)接口的限定的數(shù)據(jù)端口直接接收數(shù)據(jù),并且通過所述網(wǎng)絡(luò)接口的另一個數(shù)據(jù)端口將接收的數(shù)據(jù)傳輸?shù)酵獠繑?shù)據(jù)網(wǎng)絡(luò),而不受所述主機(jī)計(jì)算系統(tǒng)的干預(yù)。
[0122]在一個實(shí)施方式中,所述網(wǎng)絡(luò)接口包括轉(zhuǎn)發(fā)接口,所述轉(zhuǎn)發(fā)接口便于所述轉(zhuǎn)發(fā)模塊的配置,所述轉(zhuǎn)發(fā)接口具有能夠禁止兩個端口之間的數(shù)據(jù)轉(zhuǎn)發(fā)的控制寄存器。
[0123]在一個實(shí)施方式中,所述網(wǎng)絡(luò)接口包括過濾引擎,所述過濾引擎從由所述轉(zhuǎn)發(fā)模塊接收的數(shù)據(jù)中讀取目的地址,并且阻止轉(zhuǎn)發(fā)具有與所述主機(jī)計(jì)算系統(tǒng)關(guān)聯(lián)的地址匹配的目的地址的數(shù)據(jù)。
[0124]第十九方面,本發(fā)明提供一種數(shù)據(jù)轉(zhuǎn)發(fā)方法,該數(shù)據(jù)轉(zhuǎn)發(fā)方法包括在計(jì)算系統(tǒng)網(wǎng)絡(luò)接口的指定的數(shù)據(jù)端口接收網(wǎng)絡(luò)數(shù)據(jù),以及通過所述網(wǎng)絡(luò)接口的另一個端口將接收的數(shù)據(jù)傳輸?shù)酵獠繑?shù)據(jù)網(wǎng)絡(luò),而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。
[0125]第二十方面,所述數(shù)據(jù)轉(zhuǎn)發(fā)方法包括:
[0126]使用具有多個數(shù)據(jù)端口的網(wǎng)絡(luò)接口接收來自外部數(shù)據(jù)網(wǎng)絡(luò)的數(shù)據(jù),所述網(wǎng)絡(luò)接口與主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線連接,以及
[0127]將通過所述網(wǎng)絡(luò)接口的限定端口接收的數(shù)據(jù)轉(zhuǎn)發(fā)到所述網(wǎng)絡(luò)接口的另一個端口,而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。
[0128]在一個實(shí)施方式中,所述方法包括通過寫入所述網(wǎng)絡(luò)接口內(nèi)的控制寄存器來禁止兩個網(wǎng)絡(luò)接口端口之間的轉(zhuǎn)發(fā)。
[0129]在一個實(shí)施方式中,所述方法包括從由轉(zhuǎn)發(fā)模塊接收的數(shù)據(jù)中讀取目的地址,并且阻止轉(zhuǎn)發(fā)具有與所述主機(jī)計(jì)算系統(tǒng)關(guān)聯(lián)的地址匹配的目的地址的數(shù)據(jù)。
【附圖說明】
[0130]本發(fā)明的特征和優(yōu)點(diǎn)將從下面參照附圖僅通過示例方式對本發(fā)明的實(shí)施方式的描述中變得更加明了,在附圖中:
[0131]圖1是包括多個相互連接的計(jì)算系統(tǒng)的網(wǎng)絡(luò)的示意圖。
[0132]圖2是描述若干個功能模塊的網(wǎng)絡(luò)接口的示意圖。
[0133]圖3是描述接收緩存區(qū)內(nèi)的存儲器分配的框圖。
[0134]圖4是描述協(xié)調(diào)與網(wǎng)絡(luò)接口的交換的各個功能模塊的主機(jī)計(jì)算系統(tǒng)的示意圖。
[0135]圖5是描述網(wǎng)絡(luò)接口內(nèi)的存儲器分配的框圖。
[0136]圖6是用于將數(shù)據(jù)從計(jì)算系統(tǒng)傳輸?shù)骄W(wǎng)絡(luò)接口的傳輸方法的流程圖。
[0137]圖7是網(wǎng)絡(luò)接口記錄功能的框圖表示。
[0138]圖8是網(wǎng)絡(luò)接口端口轉(zhuǎn)發(fā)功能的框圖表示。
【具體實(shí)施方式】
[0139]在本說明書中描述了低延時網(wǎng)絡(luò)接口和補(bǔ)充的數(shù)據(jù)管理協(xié)議的實(shí)施方式。數(shù)據(jù)管理協(xié)議通過將控制數(shù)據(jù)和網(wǎng)絡(luò)數(shù)據(jù)整合而減少了網(wǎng)絡(luò)接口和相應(yīng)的主機(jī)計(jì)算系統(tǒng)之間的專用的控制交換。
[0140]降低通信延時通常提高了用于網(wǎng)絡(luò)密集交互的處理時間。在以下部分公開的發(fā)送協(xié)議和接收協(xié)議的實(shí)施方式限制在網(wǎng)絡(luò)接口和主機(jī)計(jì)算系統(tǒng)之間的交換以降低處理延時。將總的延時降低幾分之一秒能夠在高性能計(jì)算應(yīng)用(例如在線游戲和金融交易)中具有顯著的影響。
[0141]網(wǎng)絡(luò)數(shù)據(jù)在常規(guī)網(wǎng)絡(luò)應(yīng)用中一般使用離散數(shù)據(jù)“幀”在計(jì)算系統(tǒng)之間傳輸。數(shù)據(jù)幀由“發(fā)送方(sender)”系統(tǒng)限定并且可以包括在傳輸方法中使用的控制數(shù)據(jù)(例如目的地址)。在本說明書中描述的網(wǎng)絡(luò)接口實(shí)施方式主要與基于“幀”的網(wǎng)絡(luò)實(shí)現(xiàn)方式(其中數(shù)據(jù)在幀中傳送)相互作用。然而,通常的協(xié)議還可以通過其他網(wǎng)絡(luò)標(biāo)準(zhǔn)來實(shí)施。
[0142]延時是對數(shù)據(jù)傳輸通過系統(tǒng)所用時間的度量。網(wǎng)絡(luò)接口的“接收延時”表示在接收來自外部網(wǎng)絡(luò)的數(shù)據(jù)幀和該幀變得可獲得以用于在對應(yīng)的主機(jī)計(jì)算系統(tǒng)中執(zhí)行的軟件應(yīng)用之間的時間。網(wǎng)絡(luò)接口的“傳輸延時”表示在幀變得從主機(jī)計(jì)算系統(tǒng)中執(zhí)行的軟件應(yīng)用中可獲得和該幀傳輸?shù)酵獠烤W(wǎng)絡(luò)之間的時間。接收延時和傳輸延時都主要是由網(wǎng)絡(luò)接口引起的。
[0143]在本說明書中,數(shù)據(jù)管理協(xié)議和接口特征的【具體實(shí)施方式】都屬于分立的功能單元(通常為“模塊”和“引擎”)。這些功能單元體現(xiàn)了它們包含的各個接□元件(硬件和軟件)的運(yùn)行和交互。這些功能單元不代表嚴(yán)格的運(yùn)行劃分或具體的硬件/軟件實(shí)現(xiàn)。多個功能單元的運(yùn)行可以通過單個硬件部件(例如微處理器或者現(xiàn)場可編程門陣列)、軟件應(yīng)用(例如驅(qū)動軟件或嵌入式軟件)、多個硬件部件或者硬件和軟件的混合來執(zhí)行。
[0144]接收來自外部網(wǎng)絡(luò)的數(shù)據(jù)
[0145]常規(guī)的網(wǎng)絡(luò)接口協(xié)議通過在主機(jī)計(jì)算系統(tǒng)中執(zhí)行的驅(qū)動軟件來協(xié)調(diào)。驅(qū)動通常將主機(jī)存儲器分配給單獨(dú)的數(shù)據(jù)幀并且在主機(jī)存儲器中保持指針(被稱為“接收描述符”)陣列作為記錄。在接收到新的幀并且將該幀復(fù)制到由相應(yīng)的指針限定的存儲器地址時,網(wǎng)絡(luò)接口訪問“接收描述符”陣列。在復(fù)制完成時,接口產(chǎn)生系統(tǒng)中斷來警報(bào)主機(jī)系統(tǒng)已經(jīng)傳送了新的幀。一旦已經(jīng)處理了該幀,驅(qū)動軟件在后續(xù)的使用中釋放該指針。
[0146]在該部分中描述的網(wǎng)絡(luò)接口和接收協(xié)議的實(shí)施方式通過消除與主機(jī)計(jì)算系統(tǒng)的若干交互而降低了由于網(wǎng)絡(luò)接口導(dǎo)致的接收延時。公開的網(wǎng)絡(luò)接口使用在主機(jī)計(jì)算系統(tǒng)存儲器中分配的接收緩存區(qū)(或者少量的接收緩存區(qū))與主機(jī)計(jì)算系統(tǒng)交換接收的網(wǎng)絡(luò)數(shù)據(jù)。每個接收緩存區(qū)具有存儲已經(jīng)接收自外部網(wǎng)絡(luò)的多個數(shù)據(jù)幀的容量。
[0147]網(wǎng)絡(luò)接口自主規(guī)定在接收緩存區(qū)內(nèi)數(shù)據(jù)的分配,而不受主機(jī)計(jì)算系統(tǒng)(包括網(wǎng)絡(luò)接口驅(qū)動器)的干預(yù)。接口通常使用循環(huán)的先進(jìn)先出(FIFO)排序協(xié)議在接收緩存區(qū)內(nèi)接連地分配接收的數(shù)據(jù)幀。主機(jī)計(jì)算系統(tǒng)不為通過網(wǎng)絡(luò)接口接收的單獨(dú)幀分配寫入地址或?qū)S玫木彺鎱^(qū)。
[0148]網(wǎng)絡(luò)接口利用開環(huán)寫入?yún)f(xié)議遞歸地將數(shù)據(jù)幀寫入接收緩存區(qū),而不需要來自主機(jī)計(jì)算系統(tǒng)的反饋(例如表明幀已經(jīng)被提取的讀取確認(rèn))。這便于在主機(jī)計(jì)算系統(tǒng)中執(zhí)行的多個軟件應(yīng)用對接收緩存區(qū)中的數(shù)據(jù)的非對等訪問。網(wǎng)絡(luò)接口在記錄的寫入迭代期間接連地向接收緩存區(qū)中寫入新幀。在接連寫入迭代期間緩存區(qū)中現(xiàn)有的數(shù)據(jù)被覆寫。網(wǎng)絡(luò)接口在接收的幀寫入到緩存區(qū)時通常在接收的幀后面附加標(biāo)準(zhǔn)的控制數(shù)據(jù)(包括當(dāng)前的寫入迭代)。主機(jī)計(jì)算系統(tǒng)使用控制數(shù)據(jù)從接收緩存區(qū)中提取幀。
[0149]主機(jī)計(jì)算系統(tǒng)執(zhí)行接收協(xié)議,該接收協(xié)議使得來自接收緩存區(qū)的數(shù)據(jù)幀能夠被在主機(jī)計(jì)算系統(tǒng)中執(zhí)行的軟件應(yīng)用訪問。接收協(xié)議使用由網(wǎng)絡(luò)接口生成的控制數(shù)據(jù)便于存儲在接收緩存區(qū)中的數(shù)據(jù)幀的提取和重構(gòu)。
[0150]在圖1中描述了計(jì)算網(wǎng)絡(luò)10。該網(wǎng)絡(luò)10包括多個相互連接的計(jì)算系統(tǒng)。計(jì)算系統(tǒng)通過公共數(shù)據(jù)網(wǎng)絡(luò)11(例如因特網(wǎng)或局域網(wǎng))連接。
[0151]示出的數(shù)據(jù)網(wǎng)絡(luò)11促進(jìn)主機(jī)計(jì)算系統(tǒng)15和多個遠(yuǎn)程計(jì)算系統(tǒng)12之間的通信。主機(jī)計(jì)算系統(tǒng)15包含管理與數(shù)據(jù)網(wǎng)絡(luò)11的數(shù)據(jù)交換的網(wǎng)絡(luò)接口。
[0152]圖2中描述了網(wǎng)絡(luò)接口20的功能表示。該接口 20包括網(wǎng)絡(luò)側(cè)21和系統(tǒng)側(cè)22,網(wǎng)絡(luò)側(cè)21接收來自外部數(shù)據(jù)網(wǎng)絡(luò)11的數(shù)據(jù),系統(tǒng)側(cè)22通過內(nèi)部系統(tǒng)總線將接收的數(shù)據(jù)傳輸?shù)皆谥鳈C(jī)計(jì)算系統(tǒng)15中分配的存儲器。
[0153]圖2中描述的網(wǎng)絡(luò)接口20的網(wǎng)絡(luò)側(cè)21包括多個數(shù)據(jù)端口 19。每個數(shù)據(jù)端口 19為網(wǎng)絡(luò)接口控制系統(tǒng)25和外部數(shù)據(jù)網(wǎng)絡(luò)之間的網(wǎng)絡(luò)數(shù)據(jù)交換限定數(shù)據(jù)通道。數(shù)據(jù)端口 19可以與物理連接器(例如圖2中所描述的小形狀因數(shù)(Small Form-Factor)模塊)集成或者限定與外部網(wǎng)絡(luò)的無線數(shù)據(jù)通道連接。
[0154]網(wǎng)絡(luò)接口的系統(tǒng)側(cè)22通常指定在網(wǎng)絡(luò)接口和內(nèi)部系統(tǒng)總線之間的功能接合(例如在用于集成應(yīng)用的共享的微控制器內(nèi)的功能劃分)。通過接口的系統(tǒng)側(cè)22限定的功能接合可以與物理接合(例如PCB上的總線連接器或有線接口)一致。圖2中描述的網(wǎng)絡(luò)接口 20的系統(tǒng)側(cè)22與主機(jī)計(jì)算系統(tǒng)主板24的PCI總線插槽23—致。接口控制系統(tǒng)25管理從網(wǎng)絡(luò)接口 20的網(wǎng)絡(luò)側(cè)21到系統(tǒng)側(cè)22的數(shù)據(jù)傳輸。
[0155]接口20以“幀”接收來自網(wǎng)絡(luò)11的數(shù)據(jù)。通常的以太網(wǎng)幀的大小在64字節(jié)到1518字節(jié)之間變化。比最大幀大小更大的數(shù)據(jù)包在傳輸?shù)綌?shù)據(jù)網(wǎng)絡(luò)11之前被分成多個幀。網(wǎng)絡(luò)接口將從網(wǎng)絡(luò)接收的幀傳輸?shù)街鳈C(jī)計(jì)算系統(tǒng)中的共享存儲器。主機(jī)計(jì)算系統(tǒng)用常規(guī)的接收協(xié)議管理該方法。
[0156]圖2中描述的網(wǎng)絡(luò)接口20將接收的幀傳輸?shù)街鳈C(jī)存儲器中整合的緩存區(qū),而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。這通過消除若干時間密集型系統(tǒng)交互(包括與主機(jī)計(jì)算系統(tǒng)的指針分配和系統(tǒng)讀取確定消息交換)而降低了用于接收事務(wù)的開銷。
[0157]接口控制系統(tǒng)25管理從接口20的網(wǎng)絡(luò)側(cè)21傳輸?shù)街鳈C(jī)計(jì)算系統(tǒng)15中的系統(tǒng)總線(例如PCI或PCI快速總線)的幀。系統(tǒng)總線將幀傳輸?shù)浇邮站彺鎱^(qū),在該接收緩存區(qū)中數(shù)據(jù)能夠被在主機(jī)計(jì)算系統(tǒng)處理器上執(zhí)行的軟件應(yīng)用訪問。
[0158]網(wǎng)絡(luò)接口驅(qū)動器為網(wǎng)絡(luò)接口20分配主機(jī)計(jì)算系統(tǒng)15中的存儲器。對于從網(wǎng)絡(luò)接口20傳輸?shù)膸?,將分配的存儲器整合到緩存區(qū)(“接收緩存區(qū)”)。分配的存儲器地址通常限定對于多個數(shù)據(jù)幀具有足夠的存儲容量的一系列接連存儲器(接收緩存區(qū)通常比預(yù)計(jì)從網(wǎng)絡(luò)得到的數(shù)據(jù)幀的大小大至少一個數(shù)量級)。主機(jī)計(jì)算系統(tǒng)15在存儲器中分配被系統(tǒng)處理器有效訪問以優(yōu)化數(shù)據(jù)提取的接收緩存區(qū)。
[0159]主機(jī)計(jì)算系統(tǒng)15可以為若干個接收緩存區(qū)分配存儲器,每個接收緩存區(qū)能夠接收多個數(shù)據(jù)幀。然而,由主機(jī)計(jì)算系統(tǒng)15分配的接收緩存區(qū)的總數(shù)相對于系統(tǒng)預(yù)計(jì)處理的數(shù)據(jù)幀的數(shù)目而言保持為小的。通常為多端口網(wǎng)絡(luò)接口內(nèi)的單獨(dú)端口分配獨(dú)立的接收緩存區(qū)。單個的網(wǎng)絡(luò)接口端口可以利用可編程過濾器將幀分配到一個以上的接收緩存區(qū)。各個接收緩存區(qū)在主機(jī)存儲器中可以是不相鄰的(盡管分配給每個緩存區(qū)的存儲器通常是連續(xù)的)。
[0160]在系統(tǒng)初始化(例如系統(tǒng)啟動或在初始化命令之后)期間通常通過專用的硬件驅(qū)動器分配網(wǎng)絡(luò)接口接收緩存區(qū)。在圖3中示出在示例性接收緩存區(qū)30中分配的數(shù)據(jù)的示意圖。
[0161]網(wǎng)絡(luò)接口20將分配給每個接收緩存區(qū)的存儲器分成多個接連的緩存槽31 ο集成的緩存區(qū)管理模塊27協(xié)調(diào)分配的存儲器的劃分。緩存區(qū)管理模塊27在每個接收緩存區(qū)中建立多個接連的、單獨(dú)可尋址的緩存槽31。由緩存區(qū)管理模塊27生成的緩存槽31通常是同性質(zhì)的,具有相同的存儲容量以及均勻的存儲器地址偏移。緩存槽31的存儲容量通常在32字節(jié)到512字節(jié)之間。
[0162]緩存槽31使網(wǎng)絡(luò)接口20能夠有效地協(xié)調(diào)對整合的接收緩存區(qū)30的寫入操作,而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。圖示的網(wǎng)絡(luò)接口20將分配的存儲器用作循環(huán)緩存區(qū),在指定的存儲器地址(通常與第一緩存槽一致)重新初始化寫入序列之前順續(xù)地寫到指定的緩存槽31中的每一個。接口控制系統(tǒng)25自主規(guī)定接收緩存區(qū)30中的數(shù)據(jù)幀的分配,而不受主機(jī)計(jì)算系統(tǒng)(包括由主機(jī)計(jì)算系統(tǒng)執(zhí)行的接口驅(qū)動器)的干預(yù)。
[0163]圖示的接口控制系統(tǒng)25包括寫入控制器26,該寫入控制器利用開環(huán)寫入?yún)f(xié)議將接收的數(shù)據(jù)幀寫到接收緩存區(qū)30。寫入控制器26在接連地寫入循環(huán)完成之后接著遞歸地覆寫接收緩存區(qū)30中的緩存槽31。覆寫接收緩存區(qū)30中的數(shù)據(jù),而不需要主機(jī)計(jì)算系統(tǒng)的讀取確認(rèn)(反饋表明相應(yīng)的數(shù)據(jù)已經(jīng)被處理)。消除來自主機(jī)系統(tǒng)的該反饋使得網(wǎng)絡(luò)接口 20接連地將數(shù)據(jù)幀寫入存儲器而不中斷,從而增加數(shù)據(jù)傳輸?shù)男省?br>[0164]網(wǎng)絡(luò)接口20將控制數(shù)據(jù)33與寫入到接收緩存區(qū)30的每個緩存槽31的網(wǎng)絡(luò)數(shù)據(jù)32組合。主機(jī)計(jì)算系統(tǒng)利用控制數(shù)據(jù)33來管理從接收緩存區(qū)30的數(shù)據(jù)提取。圖示的控制系統(tǒng)25包括幀管理模塊28,該幀管理模塊生成用于網(wǎng)絡(luò)接口20的控制數(shù)據(jù)33。由幀管理模塊28生成的控制數(shù)據(jù)33包括:
[0165]時間戳(34):32比特
[0166]幀狀態(tài)(35): 8比特
[0167]長度(36):8比特
[0168]未使用(37): 8比特
[0169]寫入迭代計(jì)數(shù)器(38):8比特
[0170]幀管理模塊28在緩沖區(qū)寫入操作之前將控制數(shù)據(jù)33與網(wǎng)絡(luò)數(shù)據(jù)32封裝。這允許寫入控制器26在與網(wǎng)絡(luò)數(shù)據(jù)相同的總線事務(wù)中將控制數(shù)據(jù)33傳輸?shù)浇邮站彺鎱^(qū)30。組合的數(shù)據(jù)包從網(wǎng)絡(luò)接口 20傳輸?shù)浇邮站彺鎱^(qū)30的分立的“緩存槽”中。
[0171]圖示的網(wǎng)絡(luò)接口為接收緩存區(qū)30的每個緩存槽31生成8字節(jié)(64比特)的控制數(shù)據(jù)
33??刂茢?shù)據(jù)33中的一個字節(jié)(8比特)被分配用于擴(kuò)展(“未使用”的數(shù)據(jù)字段37)。
[0172]在包括相應(yīng)網(wǎng)絡(luò)數(shù)據(jù)的整合的存儲器事務(wù)中將控制數(shù)據(jù)33寫入接收緩存區(qū)30內(nèi)的各個緩存槽31。這降低了緩存槽31的有效容量(可用于網(wǎng)絡(luò)數(shù)據(jù)的存儲器)。例如,一個128字節(jié)的緩存槽能夠存儲120字節(jié)的網(wǎng)絡(luò)數(shù)據(jù)32和8字節(jié)的控制數(shù)據(jù)33。對于較小的緩存槽分配,在緩存槽31中控制數(shù)據(jù)33與網(wǎng)絡(luò)數(shù)據(jù)32的比例增加。
[0173]在與相應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)32相同的緩存槽中分配控制數(shù)據(jù)33避免了通常在將控制數(shù)據(jù)33寫入單獨(dú)的寄存器時發(fā)生的輔助讀取/寫入操作。寫入控制器26通常在與網(wǎng)絡(luò)數(shù)據(jù)相同的總線事務(wù)中將控制數(shù)據(jù)33寫入接收緩存槽。這減少了將幀傳輸?shù)街鳈C(jī)計(jì)算系統(tǒng)所需要的寫入操作。圖示的寫入控制器26將控制數(shù)據(jù)33附加到網(wǎng)絡(luò)數(shù)據(jù)32,使得控制數(shù)據(jù)33被寫入到緩存區(qū)內(nèi)相應(yīng)的緩存槽的結(jié)尾處。這使得主機(jī)計(jì)算系統(tǒng)能夠通過執(zhí)行控制數(shù)據(jù)33檢查來確認(rèn)緩存區(qū)寫入操作。
[0174]幀管理模塊28為系統(tǒng)時間戳34分配控制數(shù)據(jù)33中的4個字節(jié)(32比特)?!皶r間戳”字段34記載在網(wǎng)絡(luò)接口 20的幀接收時間(通常用于網(wǎng)絡(luò)分析和診斷)??刂葡到y(tǒng)25從內(nèi)部計(jì)數(shù)器導(dǎo)出時間戳字段34。
[0175]圖示的幀管理模塊28在接收到來自外部網(wǎng)絡(luò)的幀的第一字節(jié)時將內(nèi)部計(jì)數(shù)器的值復(fù)制到時間戳字段34。在將幀劃分到緩沖區(qū)內(nèi)的多個緩存槽31時(即在數(shù)據(jù)幀大于接收緩沖區(qū)30的緩存槽的大小時),相同的時間戳34用于每個幀片段。
[0176]幀狀態(tài)字段35包括用于接收的幀的一般狀態(tài)信息。幀管理模塊28記載在“幀狀態(tài)”字段35中檢測到的幀接收錯誤。通過圖示的控制系統(tǒng)25生成的幀狀態(tài)碼包括:
[0177]O 一成功接收
[0178]I—遠(yuǎn)程發(fā)送方中止傳輸中間幀
[0179]2—幀完整性檢查失敗
[0180]3—在幀接收期間存儲器溢出
[0181]超出緩存區(qū)緩存槽31的存儲容量的接收幀被分成幀片段并且被分配至多個緩存槽31。幀管理模塊28協(xié)調(diào)緩存區(qū)中的大數(shù)據(jù)幀的劃分和分配。片段通常分配至接收緩存區(qū)30內(nèi)接連的緩存槽31。
[0182]幀管理模塊28利用控制數(shù)據(jù)“長度”字段36記載緩存區(qū)內(nèi)各幀的分配。長度字段36限定了緩存區(qū)內(nèi)接連的緩存槽31之間的關(guān)系。非零長度字段36表明該幀在相應(yīng)的緩存槽內(nèi)結(jié)束(該緩存槽包含與緩存槽劃分一致的幀邊界的結(jié)尾)。長度字段36中的“零”條目表明相鄰的緩存槽31包括相同數(shù)據(jù)幀的片段。主機(jī)計(jì)算系統(tǒng)使用長度字段36來重構(gòu)片段化的數(shù)據(jù)幀。
[0183]用于包含在單個緩存槽31內(nèi)的幀的長度字段36標(biāo)識所述幀的“大小”(通常以字節(jié)計(jì))。幀的初始片段或者中間片段用長度字段36中的“零”條目表示。這表明從相同的幀中導(dǎo)出的附加片段存儲在隨后的(接連的)緩存槽中。幀的“尾部”片段被指定為與片段大小相稱的長度條目(即片段在緩存槽內(nèi)占用的空間)。非零長度條目向主機(jī)計(jì)算系統(tǒng)發(fā)信號通知已經(jīng)從緩存區(qū)提取出該幀的所有片段并且下一個緩存槽包括不同的幀。
[0184]緩存區(qū)管理模塊27在網(wǎng)絡(luò)接口20內(nèi)的專用寄存器中維持用于接收緩存區(qū)30的“生成”計(jì)數(shù)器。生成計(jì)數(shù)器記載用于循環(huán)接收緩存區(qū)30的當(dāng)前寫入迭代。緩存區(qū)管理模塊27在每次寫入循環(huán)完成(即每次寫入控制器26向循環(huán)緩存區(qū)內(nèi)的結(jié)尾緩存槽寫入數(shù)據(jù))時單調(diào)地增加生成計(jì)數(shù)器。
[0185]幀管理模塊28在寫入操作期間將緩存區(qū)生成計(jì)數(shù)器的當(dāng)前值復(fù)制到“寫入迭代計(jì)數(shù)器”控制數(shù)據(jù)字段38。在主機(jī)計(jì)算系統(tǒng)中執(zhí)行的軟件使用寫入迭代計(jì)數(shù)器38同步來自接收緩存區(qū)30的讀取操作。
[0186]緩存區(qū)訪問協(xié)議
[0187]主機(jī)計(jì)算系統(tǒng)監(jiān)測接收緩存區(qū)30中來自網(wǎng)絡(luò)接口的寫入更新并且當(dāng)新幀變得可用時提取新幀。該方法在延時敏感型應(yīng)用中不依賴于網(wǎng)絡(luò)接口寫入操作。從接收緩存區(qū)中提取網(wǎng)絡(luò)數(shù)據(jù)而不受網(wǎng)絡(luò)接口的干預(yù)消除了許多時間密集型系統(tǒng)交互(用在常規(guī)的網(wǎng)絡(luò)接口協(xié)議中以協(xié)調(diào)內(nèi)部數(shù)據(jù)交換)。這允許網(wǎng)絡(luò)接口用較少的開銷將數(shù)據(jù)幀傳輸?shù)街鳈C(jī)計(jì)算系統(tǒng)。
[0188]主機(jī)計(jì)算系統(tǒng)包括緩存區(qū)訪問系統(tǒng),該緩存區(qū)訪問系統(tǒng)協(xié)調(diào)從接收緩存區(qū)30的數(shù)據(jù)提取。圖4中示出緩存區(qū)訪問系統(tǒng)40的功能表示。圖示的緩存區(qū)訪問系統(tǒng)40包括多個功能模塊。各模塊可以通過在主機(jī)計(jì)算系統(tǒng)15上執(zhí)行的專用的驅(qū)動軟件或者獨(dú)立的軟件應(yīng)用執(zhí)行。
[0189]圖4中示出的緩存區(qū)訪問系統(tǒng)40包括參考模塊41,該參考模塊在發(fā)起數(shù)據(jù)提取過程時評估接收緩存區(qū)30的狀態(tài)。參考模塊41使用寫入迭代計(jì)數(shù)器字段38來確定緩存區(qū)狀態(tài)。在每個緩存槽31的控制數(shù)據(jù)33內(nèi)分配的寫入迭代計(jì)數(shù)器38在數(shù)據(jù)最后寫入到相應(yīng)的緩存槽時限定寫入迭代。參考模塊41訪問循環(huán)接收緩存區(qū)30內(nèi)的多個數(shù)據(jù)緩存槽31并且評估包含在控制數(shù)據(jù)33內(nèi)的寫入迭代計(jì)數(shù)器38。緩存區(qū)訪問系統(tǒng)40使用來自接連的緩存槽31的寫入迭代計(jì)數(shù)器38來識別當(dāng)前的寫入迭代和先前的寫入迭代之間的邊界。
[0190]同步模塊42利用由參考模塊41定位的寫入迭代計(jì)數(shù)器38確定用于循環(huán)緩存區(qū)的當(dāng)前寫入地址。寫入地址限定接收緩存區(qū)30內(nèi)的下一個緩存槽31由網(wǎng)絡(luò)接口 20用數(shù)據(jù)覆寫。通過同步模塊42實(shí)施的用來識別緩存區(qū)寫入地址的方法依賴于網(wǎng)絡(luò)接口使用的寫入迭代計(jì)數(shù)器字段38的格式。對于二進(jìn)制和整數(shù)寫入迭代計(jì)數(shù)器38格式的識別過程稍后在本說明書中說明。
[0191]同步模塊42將寫入地址傳輸至寫入監(jiān)測器43。寫入監(jiān)測器43反復(fù)地輪循寫入地址以檢查來自網(wǎng)絡(luò)接口的寫入更新。在通過寫入地址限定的緩存區(qū)緩存槽31內(nèi)的控制數(shù)據(jù)33變化時檢測到寫入更新。網(wǎng)絡(luò)接口在每次寫入更新期間覆寫網(wǎng)絡(luò)數(shù)據(jù)32和控制數(shù)據(jù)33。在用于所監(jiān)測的緩存槽的寫入迭代計(jì)數(shù)器字段38變化時,寫入監(jiān)測器43確定緩存槽31已經(jīng)接收到寫入更新。
[0192]在寫入監(jiān)測器43檢測到寫入更新時,提取模塊44取回與寫入地址相應(yīng)的緩存槽31的數(shù)據(jù)。在從緩存槽31提取數(shù)據(jù)后,提取模塊44實(shí)施若干數(shù)據(jù)有效性檢查。所述有效性檢查包括接收確認(rèn)(從控制數(shù)據(jù)33的幀狀態(tài)字段35導(dǎo)出)、數(shù)據(jù)完整性評估(從在寫入更新期間附加在每個緩存槽31的結(jié)尾的控制數(shù)據(jù)33的完整性得出)以及提取評估。
[0193]提取模塊44在數(shù)據(jù)提取后檢查緩存區(qū)緩存槽31的寫入迭代計(jì)數(shù)器字段38,以確認(rèn)提取過程。如果在通過寫入監(jiān)測器43識別的原始寫入更新的檢測之后寫入迭代計(jì)數(shù)器字段38已經(jīng)發(fā)生了變化,則提取模塊44生成讀取錯誤。讀取錯誤表明在數(shù)據(jù)被提取之前緩存槽31可能已經(jīng)被網(wǎng)絡(luò)接口覆寫(從而使得所提取的數(shù)據(jù)不可靠)。接收軟件應(yīng)用通常通過發(fā)出對數(shù)據(jù)丟失幀的附加請求來管理讀取錯誤。
[0194]片段化的數(shù)據(jù)幀在從接收緩存區(qū)30提取后通過幀重組模塊45進(jìn)行編輯。幀重組模塊45在寫入更新后從所提取的控制數(shù)據(jù)33中讀取長度參考字段36,并且確定相應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)的狀態(tài)。數(shù)據(jù)狀態(tài)將幀片段與完整數(shù)據(jù)幀區(qū)別開來并且確定相同數(shù)據(jù)幀的片段之間的關(guān)系。在長度參考字段36表明各緩存槽31包括來自單個幀的數(shù)據(jù)時,幀重組模塊45將來自接連的緩存槽31的網(wǎng)絡(luò)數(shù)據(jù)32組合。網(wǎng)絡(luò)接口保存寫入到接收緩存區(qū)30的幀片段的順序,使得幀重組模塊可以直接從緩存區(qū)中編輯相繼的片段。
[0195]網(wǎng)絡(luò)接口可以采用二進(jìn)制或者整數(shù)寫入迭代計(jì)數(shù)器來記載相繼的寫入迭代。二進(jìn)制寫入迭代計(jì)數(shù)器采用最小的存儲器消耗區(qū)別相繼的寫入迭代。整數(shù)寫入迭代計(jì)數(shù)器(例如通過幀管理模塊28指定的8比特寫入迭代計(jì)數(shù)器)能夠維持絕對的寫入迭代計(jì)數(shù)器。用于寫入迭代計(jì)數(shù)器38的數(shù)據(jù)類型影響通過同步模塊42實(shí)施的評估方法。
[0196]寫入地址:二進(jìn)制寫入迭代計(jì)數(shù)器
[0197]二進(jìn)制寫入迭代計(jì)數(shù)器的值隨接連的緩存區(qū)寫入循環(huán)而更迭。這允許同步模塊42區(qū)別接連的寫入迭代,但是會影響由提取模塊44執(zhí)行的數(shù)據(jù)有效性檢查。
[0198]同步模塊42可以通過遞歸地比較來自緩存區(qū)內(nèi)的接連的緩存槽31的二進(jìn)制寫入迭代計(jì)數(shù)器而確定用于緩存區(qū)的寫入地址。緩存區(qū)寫入地址通過識別在緩存區(qū)分配的相鄰緩存槽31中的不同的寫入迭代計(jì)數(shù)器來定位。
[0199]寫入地址:整數(shù)寫入迭代計(jì)數(shù)器
[0200]整數(shù)寫入迭代計(jì)數(shù)器記錄累計(jì)的寫入迭代。這以更大的存儲器使用量為代價提高了由提取模塊44執(zhí)行的數(shù)據(jù)有效性檢查的準(zhǔn)確度。圖2中示出的網(wǎng)絡(luò)接口 20在數(shù)據(jù)寫入操作期間維持復(fù)制到寫入各緩存槽31的迭代計(jì)數(shù)器字段的生成計(jì)數(shù)器。
[0201]緩存區(qū)訪問系統(tǒng)40通過建立輔助的讀取迭代計(jì)數(shù)器來調(diào)節(jié)整數(shù)寫入迭代計(jì)數(shù)器。將讀取迭代計(jì)數(shù)器與接連的緩存區(qū)緩存槽31中的控制數(shù)據(jù)33相比來識別用于接收緩存區(qū)30的當(dāng)前寫入地址。
[0202]圖4中示出的參考模塊41為同步模塊42建立讀取迭代計(jì)數(shù)器。讀取迭代計(jì)數(shù)器復(fù)制通過緩存區(qū)管理模塊27維持的緩存區(qū)生成計(jì)數(shù)器。參考模塊41從寫入到接收緩存區(qū)30內(nèi)的指定緩存槽31的控制數(shù)據(jù)33導(dǎo)出讀取迭代計(jì)數(shù)器。這避免了直接從網(wǎng)絡(luò)接口讀取生成計(jì)數(shù)器。
[0203]圖示的參考模塊41用來自接收緩存區(qū)30的最后的緩存槽的寫入迭代計(jì)數(shù)器初始化讀取迭代計(jì)數(shù)器。讀取迭代計(jì)數(shù)器通常從緩存區(qū)的結(jié)束緩存槽導(dǎo)出。每個結(jié)束緩存槽中的寫入迭代計(jì)數(shù)器在每個寫入周期的持續(xù)時間內(nèi)保持不變,這是因?yàn)樯捎?jì)數(shù)器僅在每個寫入周期結(jié)束時增加(在對最后的緩存區(qū)緩存槽的寫操作之后)。
[0204]參考模塊41將讀取迭代計(jì)數(shù)器傳輸?shù)酵侥K42。同步模塊42將讀取迭代計(jì)數(shù)器與指定給循環(huán)緩存區(qū)內(nèi)的接連的緩存槽31的多個寫入迭代計(jì)數(shù)器相比較。緩存區(qū)的寫入地址與具有寫入迭代計(jì)數(shù)器的第一緩存槽31相一致(該緩存槽31離緩存區(qū)的起始處最近),該寫入迭代計(jì)數(shù)器與讀取迭代計(jì)數(shù)器匹配(從緩存區(qū)的結(jié)束處導(dǎo)出)。
[0205]使用讀取指針協(xié)調(diào)比較方法,該讀取指針在接收緩存區(qū)30內(nèi)的相繼的緩存槽31間循環(huán)。緩存區(qū)訪問系統(tǒng)40通常在接收緩存區(qū)30內(nèi)的第一緩存槽初始化讀取指針。同步模塊42以限定的偏移(與限定的緩存區(qū)緩存槽的大小相當(dāng))增加讀取指針直到通過讀取指針識別的緩存槽中的寫入迭代計(jì)數(shù)器與讀取迭代計(jì)數(shù)器匹配。偏移增量與通過緩存區(qū)管理模塊27分配的緩存區(qū)緩存槽31的大小相當(dāng)。同步模塊42在檢測到寫入更新后增加讀取指針以與相繼的緩存槽31對準(zhǔn)。
[0206]用于延時不敏感型數(shù)據(jù)的接收警報(bào)協(xié)議
[0207]圖2示出的網(wǎng)絡(luò)接口20可以實(shí)施用于延時不敏感型網(wǎng)絡(luò)數(shù)據(jù)的接收的警報(bào)協(xié)議。接收警報(bào)協(xié)議減少了主機(jī)計(jì)算系統(tǒng)的監(jiān)測開銷。
[0208]警報(bào)協(xié)議由與在主機(jī)計(jì)算系統(tǒng)上執(zhí)行的軟件應(yīng)用進(jìn)行交互的預(yù)留模塊(附圖中未示出)發(fā)起。軟件應(yīng)用識別網(wǎng)絡(luò)交換,該網(wǎng)絡(luò)交換是延時不敏感型的并且向預(yù)留模塊傳輸網(wǎng)絡(luò)數(shù)據(jù)指定。預(yù)留模塊由于這些交換而暫時終止寫入監(jiān)測器43對網(wǎng)絡(luò)數(shù)據(jù)的輪詢功能,并且初始化網(wǎng)絡(luò)接口警報(bào)協(xié)議。這減輕了主機(jī)計(jì)算系統(tǒng)處理器上的負(fù)荷。
[0209]預(yù)留模塊還為各軟件應(yīng)用維持可配置的延時指定,所述軟件應(yīng)用能夠?qū)崿F(xiàn)延時關(guān)鍵軟件的全局優(yōu)化。軟件接口(通常由網(wǎng)絡(luò)接口驅(qū)動器提供)有利于對各軟件應(yīng)用進(jìn)行延時指定的配置。
[0210]與寫入監(jiān)測器43的停用同時,預(yù)留模塊將與網(wǎng)絡(luò)接口控制系統(tǒng)25集成的報(bào)告引擎初始化。在數(shù)據(jù)被寫入接收緩存區(qū)時,報(bào)告引擎產(chǎn)生系統(tǒng)中斷。該中斷通知預(yù)留模塊:接收緩存區(qū)內(nèi)的新數(shù)據(jù)是可用的。
[0211]與接收警報(bào)兼容的網(wǎng)絡(luò)接口包括專用的閾值寄存器,預(yù)留模塊使用該閾值寄存器來初始化警報(bào)協(xié)議。預(yù)留模塊向閾值寄存器寫入緩存槽地址來激活報(bào)告引擎。緩存槽地址為報(bào)告引擎識別在接收緩存區(qū)內(nèi)的待監(jiān)測的緩存槽(該緩存槽通常由當(dāng)前緩存區(qū)寫地址限定)。在通過緩存槽地址識別的緩存槽接收到寫入更新時,報(bào)告引擎與寫入控制器26通過接口連接并且產(chǎn)生通知中斷。
[0212]寫入到閾值寄存器中的緩存槽地址通常是識別接收緩存區(qū)內(nèi)的緩存槽偏移的整數(shù)參考。報(bào)告引擎將閾值寄存器中的緩存槽地址與通過寫入控制器26維持的寫入地址相比較,并且在寫入地址等于或超過緩存槽地址時產(chǎn)生系統(tǒng)中斷。
[0213]將絕對的緩存槽參考(例如緩存槽地址)寫入閾值寄存器補(bǔ)償了寫入控制器26和預(yù)留模塊的并發(fā)的寫入操作。當(dāng)與寫入更新到當(dāng)前寫入地址的同時(或者略微稍后)預(yù)留模塊寫入閾值寄存器時,并發(fā)的寫入操作發(fā)生。報(bào)告引擎通過識別寫入控制器序列號超出寫入到閾值寄存器的緩存槽地址來檢測并發(fā)的寫入更新。這對于報(bào)告引擎的二進(jìn)制激活是不可能的。
[0214]向外部網(wǎng)絡(luò)的數(shù)據(jù)傳輸
[0215]大多數(shù)網(wǎng)絡(luò)接口使用總線主控或者程序化的輸入/輸出(程序化的I/O)協(xié)議來協(xié)調(diào)與主機(jī)計(jì)算系統(tǒng)的內(nèi)部數(shù)據(jù)傳輸。利用標(biāo)準(zhǔn)的內(nèi)部系統(tǒng)總線實(shí)施兩種協(xié)議。
[0216]早期的網(wǎng)絡(luò)接口實(shí)施程序化的輸入/輸出協(xié)議(程序化的I/O)來與主機(jī)計(jì)算系統(tǒng)處理器通信。程序化的輸入/輸出協(xié)議通過內(nèi)部系統(tǒng)總線(例如并行ATA總線)促進(jìn)低帶寬主機(jī)控制的通信。通過向主機(jī)計(jì)算系統(tǒng)內(nèi)的I/O地址空間寫入的方式將輸出的網(wǎng)絡(luò)數(shù)據(jù)以小的數(shù)據(jù)包(通常為16比特或32比特)“推送”到網(wǎng)絡(luò)接口。主機(jī)計(jì)算系統(tǒng)處理器以高的頻率執(zhí)行I/O寫入。這會消耗資源并且對主機(jī)計(jì)算系統(tǒng)產(chǎn)生了開銷,包括過多的系統(tǒng)總線帶寬消耗以及不成比例的處理器負(fù)荷。通過總線主控協(xié)議很大程度上解決了這些限制。
[0217]大多數(shù)的常規(guī)網(wǎng)絡(luò)接口使用總線主控協(xié)議來協(xié)調(diào)輸出的網(wǎng)絡(luò)數(shù)據(jù)(從主機(jī)計(jì)算系統(tǒng)發(fā)送到外部網(wǎng)絡(luò)的數(shù)據(jù))??偩€主控使網(wǎng)絡(luò)接口能夠以對于主機(jī)計(jì)算系統(tǒng)處理器而言最小的開銷管理總線事務(wù)并且移動在主機(jī)計(jì)算系統(tǒng)內(nèi)的輸出網(wǎng)絡(luò)數(shù)據(jù)。
[0218]在主機(jī)計(jì)算系統(tǒng)上執(zhí)行的軟件通過通知新的輸出網(wǎng)絡(luò)數(shù)據(jù)的網(wǎng)絡(luò)接口發(fā)起傳輸方法。使用內(nèi)部系統(tǒng)總線將通知從處理器傳輸?shù)骄W(wǎng)絡(luò)接口。然后網(wǎng)絡(luò)接口從主機(jī)存儲器自主地取回相應(yīng)的數(shù)據(jù)。這包括向主機(jī)存儲器發(fā)出讀取請求并且接收輸出網(wǎng)絡(luò)數(shù)據(jù)(兩種交換都使用系統(tǒng)總線)。
[0219]在本部分描述的傳輸協(xié)議的實(shí)施方式使得主機(jī)計(jì)算系統(tǒng)處理器能夠?qū)⑤敵鼍W(wǎng)絡(luò)數(shù)據(jù)直接寫入到網(wǎng)絡(luò)接口存儲器內(nèi)的傳輸緩存區(qū)中。這通過將傳輸緩存區(qū)映射到主機(jī)計(jì)算系統(tǒng)的存儲器分級體系而變得容易。到傳輸緩存區(qū)的寫入被群發(fā)釋放以避免與程序化的輸入/輸出協(xié)議相關(guān)聯(lián)的一些低效。這通過在將數(shù)據(jù)釋放到網(wǎng)絡(luò)接口(傳輸緩存區(qū))內(nèi)的直接可尋址存儲器之前將輸出網(wǎng)絡(luò)數(shù)據(jù)收集在寫入組合緩存區(qū)(通常是在主機(jī)計(jì)算系統(tǒng)處理器內(nèi)分配的)中而變得容易。
[0220]公開的傳輸協(xié)議消除了在主機(jī)處理器和用于總線主控的網(wǎng)絡(luò)接口之間的若干數(shù)據(jù)管理交換以協(xié)調(diào)內(nèi)部數(shù)據(jù)傳輸。消除的交換包括:
[0221].從網(wǎng)絡(luò)接口到主機(jī)存儲器取回新數(shù)據(jù)的讀取請求,以及
[0222].從主機(jī)計(jì)算系統(tǒng)存儲器到網(wǎng)絡(luò)接口的新數(shù)據(jù)的傳輸。
[0223]由于必須在使用總線主控協(xié)議將數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)接口之前執(zhí)行消除的交換,因而這改善了所公開的網(wǎng)絡(luò)接口的延時性能。
[0224]圖4中示出了數(shù)據(jù)傳輸系統(tǒng)50的功能表示。圖示的數(shù)據(jù)傳輸系統(tǒng)50包括存儲器管理模塊51,該存儲器管理模塊監(jiān)管在專用的網(wǎng)絡(luò)接口存儲器內(nèi)的傳輸緩存區(qū)29。傳輸緩存區(qū)通常有在4千字節(jié)和2兆字節(jié)之間的存儲容量(盡管可以使用更大的存儲容量)??梢詾閳D2中描述的網(wǎng)絡(luò)接口 20配備16千字節(jié)、32千字節(jié)或者64千字節(jié)的傳輸緩存區(qū)29。
[0225]存儲器管理模塊5丨將專用的網(wǎng)絡(luò)接口存儲器映射到主機(jī)計(jì)算系統(tǒng)15內(nèi)的本地存儲器分級體系61。這使得主機(jī)計(jì)算系統(tǒng)處理器直接可尋址所映射的存儲器(對應(yīng)于傳輸緩存區(qū)29)。存儲器管理模塊51還使得能夠?qū)崿F(xiàn)對映射的存儲器的寫入組合(這通過在PCI總線應(yīng)用中設(shè)置“可預(yù)取”屬性而實(shí)現(xiàn))。圖5中示出映射的存儲器61內(nèi)分配的數(shù)據(jù)的示意圖。
[0226]傳輸系統(tǒng)50包括協(xié)調(diào)到網(wǎng)絡(luò)接口20的數(shù)據(jù)寫入的寫入控制器52。寫入控制器52使用內(nèi)部系統(tǒng)總線將輸出網(wǎng)絡(luò)數(shù)據(jù)74寫入映射的存儲器55(傳輸緩存區(qū)29)。輸出網(wǎng)絡(luò)數(shù)據(jù)74被寫入到傳輸緩存區(qū)29而不受網(wǎng)絡(luò)接口 20的干預(yù)。寫入控制器在寫入到網(wǎng)絡(luò)接口之前將輸出網(wǎng)絡(luò)數(shù)據(jù)74收集在分配于主機(jī)計(jì)算系統(tǒng)處理器中的寫入組合緩存區(qū)內(nèi)。這允許將輸出網(wǎng)絡(luò)數(shù)據(jù)74群發(fā)地(代替小的比特包)寫入傳輸緩存區(qū)29。
[0227]寫入控制器52通常將輸出網(wǎng)絡(luò)數(shù)據(jù)74以數(shù)據(jù)幀的形式寫入到傳輸緩存區(qū)29,所述數(shù)據(jù)幀被打包以傳輸?shù)酵獠烤W(wǎng)絡(luò)。這允許網(wǎng)絡(luò)接口 20從傳輸緩存區(qū)29提取輸出網(wǎng)絡(luò)數(shù)據(jù)74并且以最小的附加處理傳輸該數(shù)據(jù)。數(shù)據(jù)幀可以與控制數(shù)據(jù)73組合,控制數(shù)據(jù)有利于從傳輸緩存區(qū)29提取各幀。
[0228]圖4中示出的傳輸系統(tǒng)50包括控制模塊53,該控制模塊將控制數(shù)據(jù)73與寫入傳輸緩存區(qū)29中的數(shù)據(jù)幀組合。在通過寫入控制器52將各幀傳輸?shù)骄W(wǎng)絡(luò)接口 20之前,控制模塊53將控制數(shù)據(jù)73預(yù)置于每個數(shù)據(jù)幀中。寫入控制器52將控制數(shù)據(jù)73在與相應(yīng)的數(shù)據(jù)幀相同的事務(wù)中寫入傳輸緩存區(qū)29??刂茢?shù)據(jù)73通常加在相應(yīng)的數(shù)據(jù)幀之前并且與輸出網(wǎng)絡(luò)數(shù)據(jù)74—起存儲在傳輸緩存區(qū)中。圖4中示出的控制模塊53生成的控制數(shù)據(jù)73包括:
[0229]幀標(biāo)識符(76):16比特
[0230]反饋偏移(77):16比特
[0231]幀長度(78): 16比特
[0232]未使用(79): 16比特
[0233]控制模塊53為每個數(shù)據(jù)幀生成8字節(jié)(64比特)的控制數(shù)據(jù)??刂茢?shù)據(jù)中的2個字節(jié)(16比特)被分配用于擴(kuò)展(“未使用”數(shù)據(jù)字段79)。
[0234]由控制模塊53生成的控制數(shù)據(jù)73包括反饋描述符,所述反饋描述符使網(wǎng)絡(luò)接口能夠報(bào)告幀傳輸和限定傳輸緩存區(qū)29中相應(yīng)的數(shù)據(jù)幀的大小的長度字段。預(yù)置于每個幀的控制數(shù)據(jù)73是標(biāo)準(zhǔn)化的。
[0235]控制模塊53通過將幀參考寫入網(wǎng)絡(luò)接口20中的獨(dú)立的控制寄存器62向外部網(wǎng)絡(luò)發(fā)起數(shù)據(jù)幀的傳輸。幀參考限定專用的緩存區(qū)存儲器中相應(yīng)的數(shù)據(jù)幀的位置??刂颇K53通常將幀參考指定為專用存儲器緩存區(qū)29內(nèi)的偏移。
[0236]與網(wǎng)絡(luò)接口集成的傳輸引擎(附圖中未示出)從緩存區(qū)29提取各個數(shù)據(jù)幀用于傳輸?shù)酵獠烤W(wǎng)絡(luò)。幀參考和幀長度78字段限定了專用的存儲器緩存區(qū)內(nèi)相應(yīng)的數(shù)據(jù)幀的邊界。傳輸引擎用這些字段從傳輸緩存區(qū)29提取幀。
[0237]傳輸引擎通過用由幀參考限定的緩存區(qū)存儲器地址將幀指針初始化來發(fā)起提取過程。幀指針通常與加在相應(yīng)的數(shù)據(jù)幀之前的控制數(shù)據(jù)73—致。傳輸引擎讀取包括在用于幀的控制數(shù)據(jù)73中的幀長度78并且確定用于幀的結(jié)束地址。
[0238]網(wǎng)絡(luò)接口20將從傳輸緩存區(qū)29提取的幀傳輸?shù)酵獠烤W(wǎng)絡(luò)。如果源軟件應(yīng)用要求的話,在傳輸后能夠向主機(jī)計(jì)算系統(tǒng)發(fā)送確認(rèn)消息。通知引擎(附圖中未示出)利用包含在用于相應(yīng)幀的控制數(shù)據(jù)73中的反饋描述符管理確認(rèn)消息發(fā)送。通知引擎在與相應(yīng)的數(shù)據(jù)幀相同的事務(wù)中從專用的網(wǎng)絡(luò)接口存儲器提取反饋描述符。由生成幀的軟件應(yīng)用限定反饋描述符。
[0239]通知引擎將從專用的網(wǎng)絡(luò)接口存儲器中提取的“幀標(biāo)識符”76寫入主機(jī)計(jì)算系統(tǒng)存儲器內(nèi)的分配的反饋寄存器中以報(bào)告幀傳輸。通過控制數(shù)據(jù)73中包含的“反饋偏移”字段77限定反饋寄存器。這通常表示軟件應(yīng)用監(jiān)測的反饋陣列54(維持在主機(jī)計(jì)算系統(tǒng)存儲器中)的偏移以進(jìn)行寫入確認(rèn)。軟件應(yīng)用能夠通過將限定的比特設(shè)置在“反饋偏移”字段77內(nèi)來拒絕確認(rèn)消息。傳輸協(xié)議(包括反饋方法)的例示性實(shí)施方式在圖6中示出的流程圖中進(jìn)行說明。
[0240]寫入控制器52和存儲器管理模塊51用來實(shí)現(xiàn)傳輸方法的具體協(xié)議依賴于在主機(jī)處理器和網(wǎng)絡(luò)接口之間傳送數(shù)據(jù)的系統(tǒng)總線。在這一部分簡要地解釋了使用PCI總線標(biāo)準(zhǔn)的實(shí)現(xiàn)方式。傳輸方法還可以采用其他系統(tǒng)總線標(biāo)準(zhǔn)實(shí)現(xiàn)。
[0241]存儲器管理模塊51將用于傳輸緩存區(qū)的專用的接口存儲器映射到主機(jī)計(jì)算系統(tǒng)存儲器分級體系61內(nèi)的專用的基地址寄存器(BAR)(例如用于PCI總線實(shí)現(xiàn)的基地址寄存器二 72)。這允許寫入控制器52使用用于映射的存儲器55的寫入組合。存儲器管理模塊51還使得能夠?qū)崿F(xiàn)用于映射的存儲器55的寫入組合。用于發(fā)起幀傳輸?shù)目刂萍拇嫫?2通過存儲器管理模塊51分別映射到I/O空間(通常是基地址寄存器零60)。
[0242]轉(zhuǎn)發(fā)網(wǎng)絡(luò)接口內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)
[0243]圖2中示出的網(wǎng)絡(luò)接口20能夠?qū)崿F(xiàn)按照常規(guī)由專門的網(wǎng)絡(luò)交換機(jī)設(shè)備執(zhí)行的許多數(shù)據(jù)轉(zhuǎn)發(fā)功能。網(wǎng)絡(luò)接口 20通過在端口之間內(nèi)部傳輸網(wǎng)絡(luò)數(shù)據(jù)實(shí)現(xiàn)附加的轉(zhuǎn)發(fā)功能。這避免了在常規(guī)應(yīng)用中通過將網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)到中間交換機(jī)而引入的延時。
[0244]網(wǎng)絡(luò)接口20的網(wǎng)絡(luò)側(cè)21包括多個數(shù)據(jù)端口。如圖2所示,數(shù)據(jù)端口可以與硬件連接器集成,所述硬件連接器和可兼容物理介質(zhì)(例如小形狀因數(shù)的可插拔模塊)形成物理連接。每個數(shù)據(jù)端口限定用于在網(wǎng)絡(luò)接口控制系統(tǒng)25和外部數(shù)據(jù)網(wǎng)絡(luò)之間的網(wǎng)絡(luò)數(shù)據(jù)交換的數(shù)據(jù)通道。網(wǎng)絡(luò)接口20還可以包含無線數(shù)據(jù)端口(未示出),所述無線數(shù)據(jù)端口限定與外部網(wǎng)絡(luò)的無線數(shù)據(jù)通道連接。
[0245]網(wǎng)絡(luò)接口控制系統(tǒng)25可以通過將與各數(shù)據(jù)接口交換的網(wǎng)絡(luò)數(shù)據(jù)復(fù)制到記錄端口來促進(jìn)數(shù)據(jù)記錄。復(fù)制的網(wǎng)絡(luò)數(shù)據(jù)被打包成整合的數(shù)據(jù)流用于傳輸?shù)酵獠坑涗浵到y(tǒng)。網(wǎng)絡(luò)接口控制系統(tǒng)促進(jìn)記錄方法而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。
[0246]網(wǎng)絡(luò)接口控制系統(tǒng)25的記錄使能的實(shí)施方式包括記錄模塊85,該記錄模塊協(xié)調(diào)網(wǎng)絡(luò)接口 20內(nèi)的數(shù)據(jù)記錄。記錄模塊85從各數(shù)據(jù)通道(由網(wǎng)絡(luò)接口端口限定的)復(fù)制網(wǎng)絡(luò)數(shù)據(jù)并且將復(fù)制的數(shù)據(jù)傳輸?shù)街付ǖ挠涗浂丝凇S涗泦卧獙碜远鄠€數(shù)據(jù)端口的復(fù)制數(shù)據(jù)組合以傳輸?shù)酵獠坑涗浵到y(tǒng)。記錄單元生成整合的記錄數(shù)據(jù)流,該數(shù)據(jù)流經(jīng)由記錄端口被傳輸?shù)酵獠繑?shù)據(jù)網(wǎng)絡(luò)。
[0247]記錄模塊85包括記錄接口,該記錄接口有利于動態(tài)的記錄重新配置。記錄接口具有多個控制寄存器,所述控制寄存器指定用于記錄的數(shù)據(jù)通道(復(fù)制并且傳輸?shù)竭h(yuǎn)程記錄服務(wù)器)??刂萍拇嫫骺梢员幌到y(tǒng)管理員動態(tài)地設(shè)置以使能/禁用對各端口的記錄。
[0248]記錄模塊可以促進(jìn)數(shù)據(jù)通道內(nèi)的分開的數(shù)據(jù)流(包括發(fā)送流和接收流)的獨(dú)立的記錄。獨(dú)立的數(shù)據(jù)流記錄通過記錄控制器協(xié)調(diào)。記錄控制器將來自單個數(shù)據(jù)通道的各數(shù)據(jù)流分開并且將指定的數(shù)據(jù)流獨(dú)立地轉(zhuǎn)發(fā)到記錄單元。記錄接口可以通過為數(shù)據(jù)通道中的各數(shù)據(jù)流分配專用的控制寄存器來促進(jìn)數(shù)據(jù)流記錄。
[0249]圖7中示出描述了用于在若干數(shù)據(jù)通道內(nèi)發(fā)送和接收數(shù)據(jù)流的獨(dú)立的記錄的框圖80。每個數(shù)據(jù)端口被表示為分別傳遞接收數(shù)據(jù)流87的接收引擎81和發(fā)送數(shù)據(jù)流88的發(fā)送引擎82。每個數(shù)據(jù)流都被復(fù)制并被拷貝到記錄模塊85。
[0250]專用的記錄單元(附圖中未示出)將來自各數(shù)據(jù)流的數(shù)據(jù)幀組合成整合的記錄流90用于從網(wǎng)絡(luò)接口傳輸(通過記錄端口發(fā)送引擎83)。由轉(zhuǎn)發(fā)模塊85使用動態(tài)可配置的控制寄存器選擇包括在整合的記錄流90中的各數(shù)據(jù)流。
[0251]圖7中示出的記錄端口管理除了通過記錄模塊85生成的記錄流90之外的常規(guī)網(wǎng)絡(luò)通信。多工器84將來自記錄端口發(fā)送流89和記錄流90的輸出網(wǎng)絡(luò)數(shù)據(jù)傳送至記錄端口發(fā)送引擎83。在一些實(shí)施方式中,多工器84可以與記錄單元集成。
[0252]記錄端口發(fā)送流89和接收流86被復(fù)制并且傳輸?shù)接涗浤K85,以與來自其他數(shù)據(jù)端口的數(shù)據(jù)流一起包含在記錄流90中。
[0253 ]網(wǎng)絡(luò)接口控制系統(tǒng)25還可以促進(jìn)數(shù)據(jù)在網(wǎng)絡(luò)接口 20的端口之間轉(zhuǎn)發(fā)。通過將接收的數(shù)據(jù)從指定的端口( “轉(zhuǎn)發(fā)端口”)傳輸?shù)骄W(wǎng)絡(luò)接口的另一個端口( “目的端口”)來促進(jìn)數(shù)據(jù)轉(zhuǎn)發(fā)。圖示的網(wǎng)絡(luò)接口 20自主地將從轉(zhuǎn)發(fā)端口接收的數(shù)據(jù)轉(zhuǎn)發(fā)而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。這允許數(shù)據(jù)在網(wǎng)絡(luò)接口 20內(nèi)的端口之間傳輸。
[0254]能夠轉(zhuǎn)發(fā)的網(wǎng)絡(luò)接口控制系統(tǒng)包括轉(zhuǎn)發(fā)模塊,該轉(zhuǎn)發(fā)模塊直接從轉(zhuǎn)發(fā)端口接收數(shù)據(jù)并且通過另一個數(shù)據(jù)端口(目的端口)將接收的數(shù)據(jù)傳輸?shù)酵獠繑?shù)據(jù)網(wǎng)絡(luò)。轉(zhuǎn)發(fā)模塊可以自主地傳輸接收的網(wǎng)絡(luò)數(shù)據(jù),而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。這避免了與將數(shù)據(jù)傳輸?shù)街鳈C(jī)計(jì)算系統(tǒng)操作系統(tǒng)相關(guān)聯(lián)的延時。
[0255]過濾模塊可以過濾在轉(zhuǎn)發(fā)端口接收的網(wǎng)絡(luò)數(shù)據(jù),并且有選擇的轉(zhuǎn)發(fā)未尋址到主機(jī)計(jì)算系統(tǒng)的數(shù)據(jù)。過濾引擎(通常與轉(zhuǎn)發(fā)模塊集成)讀取在轉(zhuǎn)發(fā)端口接收的數(shù)據(jù)的目的地址。目的地址通常限定在伴隨網(wǎng)絡(luò)的元數(shù)據(jù)(例如包頭)中。過濾模塊為數(shù)據(jù)保留與主機(jī)計(jì)算系統(tǒng)的地址匹配的目的地址。
[0256]轉(zhuǎn)發(fā)接口有利于轉(zhuǎn)發(fā)模塊的配置(包括過濾引擎的啟動)。轉(zhuǎn)發(fā)接口具有在系統(tǒng)管理員設(shè)置時禁止數(shù)據(jù)在兩個端口之間轉(zhuǎn)發(fā)的控制寄存器。
[0257]網(wǎng)絡(luò)接口的轉(zhuǎn)發(fā)功能允許計(jì)算系統(tǒng)在不使用外部網(wǎng)絡(luò)交換機(jī)或分光器的情況下共享公共網(wǎng)絡(luò)連接。
[0258]圖8中示出一個示例性的端口轉(zhuǎn)發(fā)實(shí)現(xiàn)方式91。圖示的實(shí)現(xiàn)方式91具有帶有連接數(shù)據(jù)端口的對稱端口轉(zhuǎn)發(fā)配置,所述連接數(shù)據(jù)端口相互地交換接收的數(shù)據(jù)。兩個數(shù)據(jù)端口均包括促進(jìn)與外部網(wǎng)絡(luò)通信的專用的接收引擎92和發(fā)送引擎93。
[0259]輸入網(wǎng)絡(luò)數(shù)據(jù)幀通過接收引擎92接收。各端口將在接收引擎92接收的所有幀傳輸?shù)竭^濾引擎97。在示出的實(shí)施方式中每個接收引擎92具有專用的過濾引擎97。
[0260]過濾引擎97從每個接收的數(shù)據(jù)幀中讀取目的地址。具有與主機(jī)計(jì)算系統(tǒng)的地址匹配的目的地址的數(shù)據(jù)幀被改向到網(wǎng)絡(luò)接口控制系統(tǒng)用于指定到接收緩存區(qū)。具有與主機(jī)計(jì)算系統(tǒng)的地址不匹配的目的地址的數(shù)據(jù)幀被指定用于重傳到外部網(wǎng)絡(luò)。
[0261]過濾引擎可以將數(shù)據(jù)幀從轉(zhuǎn)發(fā)端口分發(fā)到多個目的地(通常為目的端口和主機(jī)計(jì)算系統(tǒng))。這使得過濾引擎能夠在目的地址與主機(jī)計(jì)算系統(tǒng)的地址不匹配時將數(shù)據(jù)幀改向到網(wǎng)絡(luò)接口控制系統(tǒng)25(有助于記錄和應(yīng)用)。過濾引擎采用的數(shù)據(jù)分發(fā)準(zhǔn)則通常使用轉(zhuǎn)發(fā)接口限定。
[0262]過濾引擎可以選擇在轉(zhuǎn)發(fā)端口接收的數(shù)據(jù)幀的子集用于分發(fā)到多個目的地。這通常用于管理未經(jīng)請求的數(shù)據(jù)(例如廣播幀以及多播幀)。在設(shè)置成混合模式時,過濾引擎還可以不加區(qū)分地分發(fā)在轉(zhuǎn)發(fā)端口接收的數(shù)據(jù)幀。
[0263]過濾引擎97將過濾的數(shù)據(jù)流(具有與主機(jī)計(jì)算系統(tǒng)的地址不同的地址的幀)傳輸?shù)竭B接的目的數(shù)據(jù)端口的發(fā)送引擎95。多工器96將過濾的數(shù)據(jù)流與來自主機(jī)計(jì)算系統(tǒng)的輸出網(wǎng)絡(luò)數(shù)據(jù)組合。
[0264]圖8中示出的端口轉(zhuǎn)發(fā)實(shí)現(xiàn)方式使“主”計(jì)算系統(tǒng)能夠與“從”計(jì)算系統(tǒng)共享網(wǎng)絡(luò)連接而不用輔助網(wǎng)絡(luò)交換機(jī)。圖示的實(shí)現(xiàn)方式為“主”計(jì)算系統(tǒng)(與外部網(wǎng)絡(luò)直接連接的計(jì)算系統(tǒng))限定了端口轉(zhuǎn)發(fā)配置。
[0265]在本發(fā)明下面的權(quán)利要求和前面的描述中,除了上下文由于表達(dá)語言或必要含義而有不同要求以外,詞語“包括(comprise)”或者其變型(例如“包括(comprises)”或者“包含(comprising)”)是在開放式意義上使用的,S卩表明所陳述的特征的存在但是不排除在本發(fā)明的各種實(shí)施方式中存在或者增加進(jìn)一步的特征。
[0266]本發(fā)明的領(lǐng)域內(nèi)的技術(shù)人員應(yīng)當(dāng)理解的是,可以作出多種修改而不脫離本發(fā)明的精神和范圍。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)接收方法,包括: 通過網(wǎng)絡(luò)接口接收來自外部網(wǎng)絡(luò)的多個數(shù)據(jù)幀,并且 通過內(nèi)部系統(tǒng)總線將每個數(shù)據(jù)幀從所述網(wǎng)絡(luò)接口傳輸?shù)皆谥鳈C(jī)計(jì)算系統(tǒng)的存儲器中分配的接收緩存區(qū), 所述網(wǎng)絡(luò)接口規(guī)定數(shù)據(jù)幀在所述接收緩存區(qū)內(nèi)的分配而不受所述主機(jī)計(jì)算系統(tǒng)的干預(yù)。2.根據(jù)權(quán)利要求1所述的方法,包括采用開環(huán)寫入?yún)f(xié)議將每個接收的數(shù)據(jù)幀從所述網(wǎng)絡(luò)接口傳輸?shù)剿鼋邮站彺鎱^(qū)。3.根據(jù)權(quán)利要求1或2所述的方法,包括將接收的數(shù)據(jù)幀相繼寫入所述接收緩存區(qū)內(nèi)的連續(xù)的存儲器范圍。4.根據(jù)權(quán)利要求1所述的方法,包括在具有用于多個數(shù)據(jù)幀的存儲容量的連續(xù)存儲器中分配所述接收緩存區(qū)。5.根據(jù)權(quán)利要求4所述的方法,包括將分配的存儲器分成多個具有相同存儲容量的接連單獨(dú)可尋址的緩存槽。6.根據(jù)權(quán)利要求5所述的方法,包括將接收的數(shù)據(jù)幀接連地寫到所述接收緩存區(qū)內(nèi)的每個緩存槽。7.根據(jù)權(quán)利要求6所述的方法,包括遞歸地覆寫所述接收緩存區(qū),而不需要所述主機(jī)計(jì)算系統(tǒng)的讀取確認(rèn)。8.根據(jù)權(quán)利要求5至7中的任一項(xiàng)所述的方法,包括將超出所述緩存槽的存儲容量的已接收的數(shù)據(jù)幀分成片段并且將幀片段分配到所述接收緩存區(qū)內(nèi)的多個接連的緩存槽。9.根據(jù)權(quán)利要求8所述的方法,包括生成控制數(shù)據(jù),所述控制數(shù)據(jù)通過限定接連的緩存槽中的幀數(shù)據(jù)的關(guān)系而便于片段化的數(shù)據(jù)幀的重構(gòu)。10.根據(jù)權(quán)利要求9所述的方法,包括將所述控制數(shù)據(jù)附加在每個幀片段的結(jié)尾處,使得所述控制數(shù)據(jù)在與所述幀片段相同的總線事務(wù)中寫在對應(yīng)的緩存槽的結(jié)尾處。11.根據(jù)權(quán)利要求10所述的方法,其中所述控制數(shù)據(jù)還限定分配到對應(yīng)的緩存槽的所述幀片段的長度。12.—種網(wǎng)絡(luò)接口,包括: 網(wǎng)絡(luò)側(cè),所述網(wǎng)絡(luò)側(cè)接收來自外部數(shù)據(jù)網(wǎng)絡(luò)的多個數(shù)據(jù)幀, 主機(jī)側(cè),所述主機(jī)側(cè)通過主機(jī)內(nèi)部系統(tǒng)總線將所述數(shù)據(jù)幀傳輸?shù)皆谥鳈C(jī)計(jì)算系統(tǒng)的存儲器中分配的接收緩存區(qū),以及 控制系統(tǒng),所述控制系統(tǒng)規(guī)定數(shù)據(jù)幀在接收緩存區(qū)內(nèi)的分配,而不受所述主機(jī)計(jì)算系統(tǒng)的干預(yù)。13.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)接口,包括寫入控制器,所述寫入控制器使用開環(huán)寫入?yún)f(xié)議將每個接收的數(shù)據(jù)幀傳輸?shù)剿鼋邮站彺鎱^(qū)。14.根據(jù)權(quán)利要求13所述的網(wǎng)絡(luò)接口,其中所述寫入控制器被配置成將所述數(shù)據(jù)幀相繼寫入所述接收緩存區(qū)內(nèi)的連續(xù)的存儲器范圍。15.根據(jù)權(quán)利要求12所述的網(wǎng)絡(luò)接口,包括緩存區(qū)管理模塊,所述緩存區(qū)管理模塊在分配給所述接收緩存區(qū)的連續(xù)的存儲器中分配具有相同存儲容量的多個接連單獨(dú)可尋址的緩存槽。16.根據(jù)權(quán)利要求15所述的網(wǎng)絡(luò)接口,包括寫入控制器,所述寫入控制器將接收的數(shù)據(jù)幀接連地傳輸?shù)剿鼋邮站彺鎱^(qū)內(nèi)的每個緩存槽。17.根據(jù)權(quán)利要求16所述的網(wǎng)絡(luò)接口,其中所述寫入控制器遞歸地覆寫所述接收緩存區(qū),而不需要所述主機(jī)計(jì)算系統(tǒng)的讀取確認(rèn)。18.根據(jù)權(quán)利要求16或17所述的網(wǎng)絡(luò)接口,包括幀管理模塊,所述幀管理模塊將超出所述緩存槽的存儲容量的已接收的數(shù)據(jù)幀分成片段并且將幀片段分配到所述接收緩存區(qū)內(nèi)的多個接連的緩存槽。19.根據(jù)權(quán)利要求18所述的網(wǎng)絡(luò)接口,其中所述幀管理模塊生成控制數(shù)據(jù),所述控制數(shù)據(jù)通過限定在接連的緩存槽中的幀數(shù)據(jù)的關(guān)系便于片段化的數(shù)據(jù)幀的重構(gòu)。20.根據(jù)權(quán)利要求19所述的網(wǎng)絡(luò)接口,其中所述寫入控制器將所述控制數(shù)據(jù)附加在每個幀片段的結(jié)尾處,使得控制數(shù)據(jù)在與所述幀片段相同的總線事務(wù)中寫在對應(yīng)的緩存槽的結(jié)尾處。21.根據(jù)權(quán)利要求19或9b所述的網(wǎng)絡(luò)接口,其中所述控制數(shù)據(jù)還限定分配給對應(yīng)的緩存槽的所述幀片段的長度。22.—種緩存區(qū)訪問協(xié)議,包括: 訪問循環(huán)緩存區(qū)內(nèi)的多個數(shù)據(jù)緩存槽,并且從每個訪問的緩存槽讀取寫入迭代計(jì)數(shù)器,所述寫入迭代計(jì)數(shù)器限定上次在相應(yīng)的緩存槽中寫入數(shù)據(jù)時的寫入迭代, 為循環(huán)緩存區(qū)確定寫入地址,所述寫入地址限定待用數(shù)據(jù)覆寫的下一個緩存槽,所述寫入地址通過分配給鄰近的緩存槽的所述寫入迭代計(jì)數(shù)器的轉(zhuǎn)變被限定,以及 循環(huán)地輪詢所述寫入地址以檢測寫入更新,所述寫入更新是根據(jù)對于對應(yīng)的緩存槽的所述寫入迭代計(jì)數(shù)器的變化確定的。23.根據(jù)權(quán)利要求22所述的協(xié)議,包括: 從所述循環(huán)緩存區(qū)內(nèi)的指定的緩存槽復(fù)制寫入迭代計(jì)數(shù)器并且從復(fù)制的寫入迭代計(jì)數(shù)器創(chuàng)建讀取迭代計(jì)數(shù)器,以及 將所述讀取迭代計(jì)數(shù)器與分配給所述循環(huán)緩存區(qū)內(nèi)的接連緩存槽的多個寫入迭代計(jì)數(shù)器比較以識別所述寫入地址。24.根據(jù)權(quán)利要求23所述的協(xié)議,包括: 在所述循環(huán)緩存區(qū)內(nèi)的指定的緩存槽初始化讀取指針, 比較分配給所述指定的緩存槽的所述寫入迭代計(jì)數(shù)器與所述讀取迭代計(jì)數(shù)器,以及 增加所述讀取指針以與所述循環(huán)緩存區(qū)內(nèi)相繼的緩存槽對準(zhǔn),直至所述讀取指針與所述寫入地址一致。25.根據(jù)權(quán)利要求24所述的協(xié)議,包括在檢測到寫入更新之后,增加所述讀取指針以與相繼的緩存槽對準(zhǔn)。26.根據(jù)權(quán)利要求22所述的協(xié)議,包括維持用于所述循環(huán)緩存區(qū)的循環(huán)計(jì)數(shù)器,所述循環(huán)計(jì)數(shù)器限定當(dāng)前的寫入迭代,在每個寫入迭代完成時所述循環(huán)計(jì)數(shù)器增加。27.根據(jù)權(quán)利要求26所述的協(xié)議,包括隨著到相應(yīng)緩存槽的每次寫入事務(wù)將所述循環(huán)計(jì)數(shù)器寫入所述循環(huán)緩存區(qū)內(nèi)的各個緩存槽,所述循環(huán)計(jì)數(shù)器提供寫入迭代計(jì)數(shù)器用于讀取同步。28.根據(jù)權(quán)利要求22到27的任一項(xiàng)所述的協(xié)議,包括: 在檢測到寫入更新時從與所述寫入地址對應(yīng)的緩存槽提取數(shù)據(jù), 在提取數(shù)據(jù)后檢查所述寫入迭代計(jì)數(shù)器以確認(rèn)提取過程,以及 如果在所述寫入更新的檢測之后所述寫入迭代計(jì)數(shù)器已經(jīng)變化,則生成讀取錯誤。29.根據(jù)權(quán)利要求22到28的任一項(xiàng)所述的協(xié)議,包括: 在寫入更新后從與所述寫入地址對應(yīng)的當(dāng)前緩存槽中讀取長度參考,以及在所述長度參考表明所述當(dāng)前緩存槽包含幀片段時,將來自所述當(dāng)前緩存槽的數(shù)據(jù)與來自相繼的緩存槽的數(shù)據(jù)組合。30.—種緩存區(qū)訪問系統(tǒng),包括: 參考模塊,所述參考模塊訪問循環(huán)緩存區(qū)內(nèi)的多個數(shù)據(jù)緩存槽并且從每個訪問的緩存槽評估寫入迭代計(jì)數(shù)器,所述寫入迭代計(jì)數(shù)器限定上次在相應(yīng)緩存槽中寫入數(shù)據(jù)時的寫入迭代, 同步模塊,所述同步模塊確定循環(huán)緩存區(qū)的寫入地址,所述寫入地址限定待用數(shù)據(jù)覆寫的下一個緩存槽,以及 寫入監(jiān)測器,所述寫入監(jiān)測器循環(huán)地輪詢所述寫入地址以檢測寫入更新,所述寫入更新是根據(jù)對應(yīng)的緩存槽的所述寫入迭代計(jì)數(shù)器的變化確定的。31.根據(jù)權(quán)利要求30所述的系統(tǒng),其中: 所述參考模塊從所述循環(huán)緩存區(qū)內(nèi)的指定的緩存槽復(fù)制寫入迭代計(jì)數(shù)器并且從復(fù)制的寫入迭代計(jì)數(shù)器創(chuàng)建讀取迭代計(jì)數(shù)器,并且 所述同步模塊將所述讀取迭代計(jì)數(shù)器與分配至所述循環(huán)緩存區(qū)內(nèi)的接連緩存槽的多個寫入迭代計(jì)數(shù)器比較以識別所述寫入地址。32.根據(jù)權(quán)利要求31所述的系統(tǒng),其中所述同步模塊在所述循環(huán)緩存區(qū)內(nèi)的指定的緩存槽初始化讀取指針,將分配給所述指定的緩存槽的所述寫入迭代計(jì)數(shù)器與所述讀取迭代計(jì)數(shù)器比較,并且增加所述讀取指針以與所述循環(huán)緩存區(qū)內(nèi)相繼的緩存槽對準(zhǔn)直至所述讀取指針與所述寫入地址一致。33.根據(jù)權(quán)利要求32所述的系統(tǒng),其中在所述寫入監(jiān)測器檢測到寫入更新時,所述同步模塊增加所述讀取指針以與所述緩存區(qū)內(nèi)的相繼的緩存槽對準(zhǔn)。34.根據(jù)權(quán)利要求30至33的任一項(xiàng)所述的系統(tǒng),包括提取模塊,所述提取模塊在檢測到寫入更新時從與所述寫入地址對應(yīng)的緩存槽提取數(shù)據(jù),在提取數(shù)據(jù)后檢查對應(yīng)緩存槽的所述寫入迭代計(jì)數(shù)器以確認(rèn)提取過程,以及如果在所述寫入更新的檢測之后所述寫入迭代計(jì)數(shù)器已經(jīng)變化,則生成讀取錯誤。35.根據(jù)權(quán)利要求30至33的任一項(xiàng)所述的系統(tǒng),包括: 提取模塊,所述提取模塊在檢測到寫入更新時從與所述寫入地址對應(yīng)的緩存槽提取數(shù)據(jù),以及 幀重構(gòu)模塊,所述幀重構(gòu)模塊從所述緩存槽的每一個中讀取長度參考,并且在所述長度參考表明相應(yīng)的緩存槽包含來自單個幀的數(shù)據(jù)時,將從接連的緩存槽提取的數(shù)據(jù)進(jìn)行組入口 ο36.一種數(shù)據(jù)傳輸方法,包括: 將來自網(wǎng)絡(luò)接口的專用的存儲器映射到主機(jī)計(jì)算系統(tǒng)內(nèi)的本地存儲器分級體系, 將輸出網(wǎng)絡(luò)數(shù)據(jù)緩存在主機(jī)計(jì)算系統(tǒng)處理器的寫入組合緩存區(qū)內(nèi), 將來自所述寫入組合緩存區(qū)的輸出網(wǎng)絡(luò)數(shù)據(jù)寫入專用的存儲器,并且 將數(shù)據(jù)從網(wǎng)絡(luò)接口傳輸?shù)酵獠烤W(wǎng)絡(luò)。37.根據(jù)權(quán)利要求36所述的方法,包括將幀參考寫入所述網(wǎng)絡(luò)接口內(nèi)的分立的控制寄存器,以發(fā)起向外部網(wǎng)絡(luò)的數(shù)據(jù)幀的傳輸,所述幀參考限定對應(yīng)幀在所述專用的存儲器中的位置。38.根據(jù)權(quán)利要求37所述的方法,包括將所述分立的控制寄存器映射到所述主機(jī)計(jì)算系統(tǒng)的基地址寄存器零。39.根據(jù)權(quán)利要求36至38的任一項(xiàng)所述的系統(tǒng),包括將所述專用的網(wǎng)絡(luò)接口存儲器映射到所述主機(jī)計(jì)算系統(tǒng)的基地址寄存器二,并且使能所述映射的存儲器的寫入組合。40.根據(jù)權(quán)利要求37或38所述的方法,包括從所述專用的存儲器中提取單獨(dú)數(shù)據(jù)幀用于傳輸?shù)酵獠烤W(wǎng)絡(luò),所述數(shù)據(jù)幀通過寫入到所述分立的控制寄存器的幀參考和在所述專用的存儲器中與所述數(shù)據(jù)幀一起寫入的幀長度限定。41.根據(jù)權(quán)利要求36至40的任一項(xiàng)所述的方法,包括將控制數(shù)據(jù)與輸出網(wǎng)絡(luò)數(shù)據(jù)一起寫入專用的存儲器,所述控制數(shù)據(jù)包括限定對應(yīng)的數(shù)據(jù)幀的大小的幀長度。42.根據(jù)權(quán)利要求41所述的方法,在與所述輸出網(wǎng)絡(luò)數(shù)據(jù)一起寫入到所述專用的存儲器的所述控制數(shù)據(jù)中包含反饋描述符,所述反饋描述符便于從所述網(wǎng)絡(luò)接口到所述主機(jī)計(jì)算系統(tǒng)的確認(rèn)消息的傳輸。43.根據(jù)權(quán)利要求36至427e的任一項(xiàng)所述的方法,包括將幀標(biāo)識符從專用的存儲器寫入到主機(jī)計(jì)算系統(tǒng)存儲器內(nèi)的分配的反饋寄存器,以報(bào)告對應(yīng)的數(shù)據(jù)幀從所述網(wǎng)絡(luò)接口到外部網(wǎng)絡(luò)的傳輸。44.根據(jù)權(quán)利要求43所述的方法,包括在包含對應(yīng)的數(shù)據(jù)幀提取的整合的存儲器訪問事務(wù)中,從所述專用的存儲器中提取限定主機(jī)計(jì)算系統(tǒng)反饋寄存器的幀標(biāo)識符和參考地址。45.一種數(shù)據(jù)傳輸系統(tǒng),包括: 存儲器管理模塊,所述存儲器管理模塊將來自網(wǎng)絡(luò)接口的專用的存儲器映射到主機(jī)計(jì)算系統(tǒng)內(nèi)的本地存儲器分級體系,以及 寫入控制器,所述寫入控制器在將輸出網(wǎng)絡(luò)數(shù)據(jù)寫入所述專用的網(wǎng)絡(luò)接口存儲器之前將輸出網(wǎng)絡(luò)數(shù)據(jù)緩存在寫入組合緩存區(qū)內(nèi)。46.根據(jù)權(quán)利要求45所述的系統(tǒng),包括控制模塊,所述控制模塊將幀參考寫入所述網(wǎng)絡(luò)接口內(nèi)的分立的控制寄存器以發(fā)起從所述網(wǎng)絡(luò)接口向外部網(wǎng)絡(luò)的數(shù)據(jù)幀的傳輸,所述幀參考限定對應(yīng)幀在所述專用的存儲器中的位置。47.根據(jù)權(quán)利要求46所述的系統(tǒng),其中所述存儲器管理模塊將所述分立的控制寄存器映射到所述主機(jī)計(jì)算系統(tǒng)的基地址寄存器零。48.根據(jù)權(quán)利要求45至47的任一項(xiàng)所述的系統(tǒng),其中所述存儲器管理模塊將專用的網(wǎng)絡(luò)接口存儲器映射到所述主機(jī)計(jì)算系統(tǒng)的基地址寄存器二,并且使能所映射的存儲器的寫入組合。49.根據(jù)權(quán)利要求46或47所述的系統(tǒng),包括傳輸引擎,所述傳輸引擎從所述專用的存儲器中提取單獨(dú)數(shù)據(jù)幀以傳輸?shù)酵獠烤W(wǎng)絡(luò),所述數(shù)據(jù)幀通過寫入到所述分立的控制寄存器的對應(yīng)的幀參考和與所述數(shù)據(jù)幀一起寫入所述專用的存儲器中的幀長度被限定。50.根據(jù)權(quán)利要求45至49的任一項(xiàng)所述的系統(tǒng),包括控制模塊,所述控制模塊在所述寫入控制器將所述網(wǎng)絡(luò)數(shù)據(jù)寫入所述專用的存儲器前將控制數(shù)據(jù)與輸出網(wǎng)絡(luò)數(shù)據(jù)組合,所述控制數(shù)據(jù)包括限定對應(yīng)的數(shù)據(jù)幀的大小的幀長度。51.根據(jù)權(quán)利要求50所述的系統(tǒng),其中所述控制模塊將反饋描述符包含在與所述輸出網(wǎng)絡(luò)數(shù)據(jù)組合的控制數(shù)據(jù)中,所述反饋描述符便于從所述網(wǎng)絡(luò)接口到所述主機(jī)計(jì)算系統(tǒng)的確認(rèn)消息的傳輸。52.根據(jù)權(quán)利要求45至51的任一項(xiàng)所述的系統(tǒng),包括通知引擎,所述通知引擎將幀標(biāo)識符從專用的存儲器寫入到主機(jī)計(jì)算系統(tǒng)存儲器內(nèi)的分配的反饋寄存器,以報(bào)告對應(yīng)的數(shù)據(jù)幀從所述網(wǎng)絡(luò)接口到外部網(wǎng)絡(luò)的傳輸。53.根據(jù)權(quán)利要求52所述的系統(tǒng),所述通知引擎在包括對應(yīng)的數(shù)據(jù)幀提取的整合的存儲器訪問事務(wù)中,從所述專用的存儲器中提取限定主機(jī)計(jì)算系統(tǒng)反饋寄存器的幀標(biāo)識符和參考地址。54.—種網(wǎng)絡(luò)接口,包括: 網(wǎng)絡(luò)側(cè),所述網(wǎng)絡(luò)側(cè)與外部數(shù)據(jù)網(wǎng)絡(luò)連接以便于數(shù)據(jù)交換,所述網(wǎng)絡(luò)側(cè)具有多個數(shù)據(jù)端口,每個數(shù)據(jù)端口限定用于通信的數(shù)據(jù)通道, 主機(jī)側(cè),所述主機(jī)側(cè)與主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線連接以便于在所述網(wǎng)絡(luò)接口和所述主機(jī)計(jì)算系統(tǒng)之間的數(shù)據(jù)交換,以及 控制系統(tǒng),所述控制系統(tǒng)管理在所述網(wǎng)絡(luò)接口的所述網(wǎng)絡(luò)側(cè)和所述主機(jī)側(cè)之間的數(shù)據(jù)交換,所述控制系統(tǒng)包括記錄模塊,所述記錄模塊復(fù)制來自各個數(shù)據(jù)通道的數(shù)據(jù)并且將復(fù)制的數(shù)據(jù)傳輸?shù)街付ǖ挠涗浂丝凇?5.根據(jù)權(quán)利要求54所述的網(wǎng)絡(luò)接口,包括記錄接口,所述記錄接口便于所述記錄模塊的配置,所述記錄接口具有多個控制寄存器,所述控制寄存器限定通過所述記錄模塊復(fù)制的數(shù)據(jù)通道。56.根據(jù)權(quán)利要求55所述的網(wǎng)絡(luò)接口,包括記錄控制器,所述記錄控制器將來自每個數(shù)據(jù)通道的數(shù)據(jù)分成接收流和發(fā)送流,所述記錄接口具有多個控制寄存器,所述控制寄存器限定通過所述記錄模塊復(fù)制的數(shù)據(jù)流。57.根據(jù)權(quán)利要求54至56的任一項(xiàng)所述的網(wǎng)絡(luò)接口,包括記錄單元,所述記錄單元將來自多個數(shù)據(jù)端口的數(shù)據(jù)組合成整合的數(shù)據(jù)流,用于傳輸?shù)酵獠烤W(wǎng)絡(luò)。58.—種數(shù)據(jù)記錄方法,包括: 使用具有多個數(shù)據(jù)端口的網(wǎng)絡(luò)接口在主機(jī)計(jì)算系統(tǒng)和外部數(shù)據(jù)網(wǎng)絡(luò)之間交換數(shù)據(jù),所述網(wǎng)絡(luò)接口與主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線連接,以及 復(fù)制來自各個數(shù)據(jù)端口的數(shù)據(jù)并且將復(fù)制的數(shù)據(jù)傳輸?shù)脚c所述網(wǎng)絡(luò)接口集成的指定的記錄端口。59.根據(jù)權(quán)利要求58所述的方法,包括選擇用于記錄的各個數(shù)據(jù)端口,所述數(shù)據(jù)端口是使用在所述網(wǎng)絡(luò)接口內(nèi)分配的專用的控制寄存器選擇的。60.根據(jù)權(quán)利要求58所述的方法,包括: 將在每個數(shù)據(jù)端口接收的數(shù)據(jù)分成接收流和發(fā)送流,并且 將選擇的數(shù)據(jù)流組合成整合的記錄流,所述流是使用在所述網(wǎng)絡(luò)接口內(nèi)分配的專用的控制寄存器選擇的。61.根據(jù)權(quán)利要求58至60的任一項(xiàng)所述的方法,包括組合來自多個數(shù)據(jù)端口的數(shù)據(jù)并且將組合的數(shù)據(jù)從主機(jī)計(jì)算系統(tǒng)傳輸?shù)酵獠烤W(wǎng)絡(luò)。62.—種網(wǎng)絡(luò)接口,包括: 網(wǎng)絡(luò)側(cè),所述網(wǎng)絡(luò)側(cè)與外部數(shù)據(jù)網(wǎng)絡(luò)連接以便于數(shù)據(jù)交換,所述網(wǎng)絡(luò)側(cè)具有多個數(shù)據(jù)端口, 主機(jī)側(cè),所述主機(jī)側(cè)與主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線連接以便于在所述網(wǎng)絡(luò)接口和所述主機(jī)計(jì)算系統(tǒng)之間的數(shù)據(jù)交換,以及 控制系統(tǒng),所述控制系統(tǒng)管理在所述網(wǎng)絡(luò)接口的所述網(wǎng)絡(luò)側(cè)和所述主機(jī)側(cè)之間的數(shù)據(jù)交換,所述控制系統(tǒng)包括轉(zhuǎn)發(fā)模塊,所述轉(zhuǎn)發(fā)模塊接收來自所述網(wǎng)絡(luò)接口的限定的數(shù)據(jù)端口的數(shù)據(jù),并且通過所述網(wǎng)絡(luò)接口的另一個數(shù)據(jù)端口將接收的數(shù)據(jù)傳輸?shù)酵獠繑?shù)據(jù)網(wǎng)絡(luò)而不受所述主機(jī)計(jì)算系統(tǒng)的干預(yù)。63.根據(jù)權(quán)利要求62所述的網(wǎng)絡(luò)接口,包括轉(zhuǎn)發(fā)接口,所述轉(zhuǎn)發(fā)接口便于所述轉(zhuǎn)發(fā)模塊的配置,所述轉(zhuǎn)發(fā)接口具有禁止在兩個端口之間的數(shù)據(jù)轉(zhuǎn)發(fā)的控制寄存器。64.根據(jù)權(quán)利要求62或63所述的網(wǎng)絡(luò)接口,包括過濾引擎,所述過濾引擎從通過轉(zhuǎn)發(fā)模塊接收的數(shù)據(jù)中讀取目的地址,并且阻止轉(zhuǎn)發(fā)具有和所述主機(jī)計(jì)算系統(tǒng)關(guān)聯(lián)的地址匹配的目的地址的數(shù)據(jù)。65.一種數(shù)據(jù)轉(zhuǎn)發(fā)方法,包括: 使用具有多個數(shù)據(jù)端口的網(wǎng)絡(luò)接口從外部數(shù)據(jù)網(wǎng)絡(luò)接收數(shù)據(jù),所述網(wǎng)絡(luò)接口與主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線連接,以及 將通過所述網(wǎng)絡(luò)接口的限定端口接收的數(shù)據(jù)轉(zhuǎn)發(fā)到所述網(wǎng)絡(luò)接口的另一個端口,而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。66.根據(jù)權(quán)利要求65所述的方法,包括通過寫入所述網(wǎng)絡(luò)接口內(nèi)的控制寄存器來禁止在兩個網(wǎng)絡(luò)接口端口之間的轉(zhuǎn)發(fā)。67.根據(jù)權(quán)利要求65或66所述的方法,包括從通過轉(zhuǎn)發(fā)模塊接收的數(shù)據(jù)中讀取目的地址,并且阻止轉(zhuǎn)發(fā)具有和所述主機(jī)計(jì)算系統(tǒng)關(guān)聯(lián)的地址匹配的目的地址的數(shù)據(jù)。68.一種數(shù)據(jù)接收方法,包括通過網(wǎng)絡(luò)接口從外部網(wǎng)絡(luò)接收數(shù)據(jù),并且通過內(nèi)部系統(tǒng)總線將所述數(shù)據(jù)傳輸?shù)街鳈C(jī)計(jì)算系統(tǒng)內(nèi)的存儲器中,所述網(wǎng)絡(luò)接口規(guī)定主機(jī)計(jì)算系統(tǒng)存儲器內(nèi)的數(shù)據(jù)的分配而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。69.一種網(wǎng)絡(luò)接口,包括網(wǎng)絡(luò)側(cè),所述網(wǎng)絡(luò)側(cè)從外部數(shù)據(jù)網(wǎng)絡(luò)接收數(shù)據(jù);主機(jī)側(cè),所述主機(jī)側(cè)經(jīng)由內(nèi)部系統(tǒng)總線將所述數(shù)據(jù)傳輸?shù)街鳈C(jī)計(jì)算系統(tǒng)內(nèi)的存儲器中;以及控制系統(tǒng),所述控制系統(tǒng)規(guī)定主機(jī)計(jì)算系統(tǒng)存儲器內(nèi)的數(shù)據(jù)的分配而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。70.一種緩存區(qū)訪問協(xié)議,包括: 從存儲器緩存區(qū)內(nèi)的多個緩存槽讀取寫入迭代計(jì)數(shù)器,所述寫入迭代計(jì)數(shù)器限定上次在相應(yīng)的緩存槽中寫入數(shù)據(jù)的時刻, 確定寫入地址,所述寫入地址限定接收數(shù)據(jù)的下一個緩存槽,所述寫入地址是根據(jù)所述寫入迭代計(jì)數(shù)器確定的,并且 循環(huán)地輪詢所述寫入地址以檢測對應(yīng)的緩存槽的寫入更新。71.—種緩存區(qū)訪問系統(tǒng),包括: 參考模塊,所述參考模塊從存儲器緩存區(qū)內(nèi)的多個數(shù)據(jù)緩存槽讀取寫入迭代計(jì)數(shù)器,所述寫入迭代計(jì)數(shù)器限定上次在相應(yīng)的緩存槽中寫入數(shù)據(jù)的時刻, 同步模塊,所述同步模塊確定寫入地址,所述寫入地址限定接收數(shù)據(jù)的下一個緩存槽,所述寫入地址是根據(jù)所述寫入迭代計(jì)數(shù)器確定的,以及 寫入監(jiān)測器,所述寫入監(jiān)測器循環(huán)地輪詢所述寫入地址以檢測對應(yīng)的緩存槽的寫入更新。72.—種數(shù)據(jù)傳輸方法,包括將輸出網(wǎng)絡(luò)數(shù)據(jù)緩存在主機(jī)計(jì)算系統(tǒng)處理器內(nèi),并且將緩存的輸出網(wǎng)絡(luò)數(shù)據(jù)直接寫入網(wǎng)絡(luò)接口內(nèi)的專用的存儲器中,所述專用的存儲器被映射到所述主機(jī)計(jì)算系統(tǒng)內(nèi)的本地存儲器分級體系。73.一種數(shù)據(jù)傳輸系統(tǒng),包括:存儲器管理模塊,所述存儲器管理模塊將來自網(wǎng)絡(luò)接口的存儲器映射到主機(jī)計(jì)算系統(tǒng)內(nèi)的本地存儲器分級體系;以及寫入控制器,所述寫入控制器在將輸出網(wǎng)絡(luò)數(shù)據(jù)直接寫入映射的存儲器之前,將輸出網(wǎng)絡(luò)數(shù)據(jù)緩存在主機(jī)計(jì)算系統(tǒng)處理器內(nèi)。74.—種網(wǎng)絡(luò)接口,包括多個數(shù)據(jù)端口和控制系統(tǒng),所述多個數(shù)據(jù)端口與外部數(shù)據(jù)網(wǎng)絡(luò)連接,所述控制系統(tǒng)管理在所述數(shù)據(jù)端口和主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線之間的數(shù)據(jù)交換, 所述控制系統(tǒng)包括記錄模塊,所述記錄模塊復(fù)制在所述系統(tǒng)總線和各個數(shù)據(jù)端口之間交換的數(shù)據(jù),并且將復(fù)制的數(shù)據(jù)傳輸?shù)街付ǖ挠涗浂丝凇?5.—種數(shù)據(jù)記錄方法,包括自動復(fù)制在計(jì)算系統(tǒng)網(wǎng)絡(luò)接口內(nèi)的網(wǎng)絡(luò)數(shù)據(jù)并且將復(fù)制的數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)接口的指定的記錄端口用于傳輸?shù)酵獠坑涗浵到y(tǒng)。76.—種網(wǎng)絡(luò)接口,包括多個數(shù)據(jù)端口以及一個控制系統(tǒng),所述控制系統(tǒng)管理在所述數(shù)據(jù)端口和主機(jī)計(jì)算系統(tǒng)的內(nèi)部系統(tǒng)總線之間的數(shù)據(jù)交換,所述控制系統(tǒng)包括轉(zhuǎn)發(fā)模塊,所述轉(zhuǎn)發(fā)模塊在分立的數(shù)據(jù)端口之間直接傳輸數(shù)據(jù)而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。77.一種數(shù)據(jù)轉(zhuǎn)發(fā)方法,包括在計(jì)算系統(tǒng)網(wǎng)絡(luò)接口的指定的數(shù)據(jù)端口接收網(wǎng)絡(luò)數(shù)據(jù),以及經(jīng)由網(wǎng)絡(luò)接口的另一個端口將接收的數(shù)據(jù)傳輸?shù)酵獠繑?shù)據(jù)網(wǎng)絡(luò),而不受主機(jī)計(jì)算系統(tǒng)的干預(yù)。
【文檔編號】H04L12/427GK105993148SQ201480065315
【公開日】2016年10月5日
【申請日】2014年10月17日
【發(fā)明人】馬修·查普曼
【申請人】索莫亞私人有限公司