【交叉引用】
本申請(qǐng)要求申請(qǐng)日為2015年11月23日,美國(guó)臨時(shí)申請(qǐng)?zhí)枮?2/259,028的美國(guó)臨時(shí)申請(qǐng)案的優(yōu)先權(quán),上述臨時(shí)申請(qǐng)案的內(nèi)容一并并入本申請(qǐng)。
【技術(shù)領(lǐng)域】
本發(fā)明有關(guān)于數(shù)據(jù)傳輸方案,更具體來說,有關(guān)于使用可用描述符(descriptor)方案及/或預(yù)取(pre-fetch)方案和相關(guān)直接存儲(chǔ)器訪問(directmemoryaccess,簡(jiǎn)寫為dma)方法的dma系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)交換機(jī)(networkswitch)是鏈接不同電子設(shè)備的計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備。舉例來說,網(wǎng)絡(luò)交換機(jī)接收與其連接的源電子設(shè)備所產(chǎn)生的輸入分組,并將從已接收的分組導(dǎo)出的輸出分組傳輸至一個(gè)或多個(gè)目的電子設(shè)備,其中所述已接收的分組原本是由一個(gè)或多個(gè)目的電子設(shè)備接收。一般來說,網(wǎng)絡(luò)交換機(jī)具有分組緩沖器用于緩沖自輸入端口(ingressport)接收的分組的分組數(shù)據(jù),以及將儲(chǔ)存在分組緩沖器的分組通過輸出端口(egressport)轉(zhuǎn)發(fā)。網(wǎng)絡(luò)交換機(jī)是由在主機(jī)設(shè)備上運(yùn)行的主機(jī)驅(qū)動(dòng)器編程的電子設(shè)備。在某些情況下,網(wǎng)絡(luò)交換機(jī)中的封包可被重新定向到主機(jī)設(shè)備用于特定處理,且主機(jī)設(shè)備中的封包可被轉(zhuǎn)發(fā)至網(wǎng)絡(luò)交換機(jī)進(jìn)行傳輸。因此,需要?jiǎng)?chuàng)新的封包數(shù)據(jù)傳送方案,以有效的發(fā)送主機(jī)設(shè)備和網(wǎng)絡(luò)交換機(jī)之間的封包。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明特提供以下技術(shù)方案:
本發(fā)明實(shí)施例提供一種直接存儲(chǔ)器訪問系統(tǒng),實(shí)施于電子設(shè)備中,其中電子設(shè)備通過通信總線與主機(jī)設(shè)備通信,其特征在于,直接存儲(chǔ)器訪問系統(tǒng)包含可用描述符通知電路,指示是否主機(jī)設(shè)備中的至少一個(gè)有效描述符可用,其中可用描述符通知電路由至少主機(jī)設(shè)備設(shè)置,且至少一個(gè)有效描述符記錄直接存儲(chǔ)器訪問數(shù)據(jù)傳輸控制信息;以及直接存儲(chǔ)器訪問控制器,當(dāng)可用描述符通知電路指示主機(jī)設(shè)備中的至少一個(gè)有效描述符可用時(shí),自主機(jī)設(shè)備取至少一個(gè)有效描述符,并參考取自主機(jī)設(shè)備的至少一個(gè)有效描述符在電子設(shè)備和主機(jī)設(shè)備之間執(zhí)行直接存儲(chǔ)器訪問數(shù)據(jù)傳輸。
本發(fā)明實(shí)施例提供一種直接存儲(chǔ)器訪問系統(tǒng),實(shí)施于電子設(shè)備中,其中電子設(shè)備通過通信總線與主機(jī)設(shè)備通信,其特征在于,直接存儲(chǔ)器訪問系統(tǒng)包含預(yù)取緩沖器,儲(chǔ)存一個(gè)或多個(gè)預(yù)取有效描述符;以及直接存儲(chǔ)器訪問控制器,參考取自主機(jī)設(shè)備的第一有效描述符執(zhí)行電子設(shè)備和主機(jī)設(shè)備之間的直接存儲(chǔ)器訪問數(shù)據(jù)傳輸,以及更在直接存儲(chǔ)器訪問數(shù)據(jù)傳輸結(jié)束之前,自主機(jī)設(shè)備預(yù)取至少一個(gè)第二有效描述符至預(yù)取緩沖器,其中每一有效描述符記錄直接存儲(chǔ)器訪問數(shù)據(jù)傳輸控制信息。
本發(fā)明實(shí)施例又提供一種直接存儲(chǔ)器訪問方法,實(shí)施于電子設(shè)備中,其中電子設(shè)備通過通信總線與主機(jī)設(shè)備通信,其特征在于,直接存儲(chǔ)器訪問方法包含利用可用描述符通知電路指示是否主機(jī)設(shè)備中的至少一個(gè)有效描述符可用,其中可用描述符通知電路由至少主機(jī)設(shè)備設(shè)置,且至少一有效描述符記錄直接存儲(chǔ)器訪問數(shù)據(jù)傳輸控制信息;以及當(dāng)可用描述符通知電路指示主機(jī)設(shè)備中的至少一個(gè)有效描述符可用時(shí),自主機(jī)設(shè)備取至少一個(gè)有效描述符;以及參考取自主機(jī)設(shè)備的至少一個(gè)有效描述符在電子設(shè)備和主機(jī)設(shè)備之間執(zhí)行直接存儲(chǔ)器訪問數(shù)據(jù)傳輸。
本發(fā)明的直接存儲(chǔ)器訪問系統(tǒng)以及相關(guān)方法可以改善總線利用率。
【附圖說明】
圖1是依據(jù)本發(fā)明實(shí)施例的具有直接存儲(chǔ)器訪問能力的電子設(shè)備的示意圖。
圖2是本發(fā)明的可用描述符機(jī)制概念的示意圖。
圖3是依據(jù)本發(fā)明實(shí)施例的具有直接存儲(chǔ)器訪問能力的另一電子設(shè)備的示意圖。
圖4是依據(jù)本發(fā)明實(shí)施例的主機(jī)設(shè)備和電子設(shè)備之間的跨描述符數(shù)據(jù)傳輸?shù)氖疽鈭D。
圖5是依據(jù)本發(fā)明實(shí)施例的第一預(yù)取機(jī)制的示意圖。
圖6是依據(jù)本發(fā)明實(shí)施例的第二預(yù)取機(jī)制的示意圖。
圖7是依據(jù)本發(fā)明實(shí)施例的第三預(yù)取機(jī)制的示意圖。
圖8是依據(jù)本發(fā)明實(shí)施例的直接存儲(chǔ)器訪問方法。
【具體實(shí)施方式】
在說明書及權(quán)利要求書當(dāng)中使用了某些詞匯來指稱特定的組件。所屬領(lǐng)域中的技術(shù)人員應(yīng)可理解,制造商可能會(huì)用不同的名詞來稱呼同樣的組件。本說明書及權(quán)利要求書并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的基準(zhǔn)。在通篇說明書及權(quán)利要求書當(dāng)中所提及的「包含」是開放式的用語,故應(yīng)解釋成「包含但不限定于」。另外,「耦接」一詞在此包含任何直接及間接的電氣連接手段。因此,若文中描述第一裝置耦接于第二裝置,則代表第一裝置可直接電氣連接于第二裝置,或透過其它裝置或連接手段間接地電氣連接至第二裝置。
圖1是依據(jù)本發(fā)明實(shí)施例的具有直接存儲(chǔ)器訪問能力的電子設(shè)備的示意圖。在該實(shí)施例中,主機(jī)設(shè)備102透過通信總線103與電子設(shè)備104通信。舉例來說,但并非限制,電子設(shè)備104可為網(wǎng)絡(luò)交換機(jī),而通信總線103可為快速外圍組件互連(peripheralcomponentinterconnectexpress,簡(jiǎn)寫為pci-e)總線。在實(shí)際中,電子設(shè)備104可為能夠由主機(jī)設(shè)備102通過通信總線103管理的任一dma設(shè)備,且/或通信總線103可使用任一通信協(xié)議實(shí)現(xiàn)。主機(jī)設(shè)備102包含主機(jī)處理器112和主機(jī)存儲(chǔ)器114。電子設(shè)備104包含dma系統(tǒng)122和封包處理電路124。封包處理電路124可在封包pkt被轉(zhuǎn)發(fā)至目標(biāo)設(shè)備(圖中未示)之前處理封包pkt。dma系統(tǒng)122包含例如可用描述符通知電路126和dma控制器128的電路。請(qǐng)注意,圖1中僅示出了與本發(fā)明相關(guān)的電路。在實(shí)際中,dma系統(tǒng)122可包含其他電路以實(shí)現(xiàn)其他功能。
對(duì)于主機(jī)設(shè)備102,其加載并執(zhí)行主機(jī)驅(qū)動(dòng)器drv,以控制主機(jī)設(shè)備102和電子設(shè)備104之間的dma數(shù)據(jù)傳輸。例如,主機(jī)設(shè)備102準(zhǔn)備主機(jī)存儲(chǔ)器114中的描述符描述符0-描述符n,其中每一描述符包含dma數(shù)據(jù)傳輸控制信息,例如源地址、目的地址、數(shù)據(jù)長(zhǎng)度等。在pci-edma應(yīng)用中,一個(gè)描述符中有一個(gè)有效比特位v。當(dāng)主機(jī)驅(qū)動(dòng)器drv準(zhǔn)備好描述符的所有信息時(shí),其使用第一預(yù)設(shè)值(例如,邏輯高值“1”)設(shè)置有效比特位v。當(dāng)dma控制器128消耗該描述符時(shí),其通過使用第二預(yù)設(shè)值(例如,邏輯低值“0”)清除有效比特位v。
在一個(gè)dma數(shù)據(jù)傳輸設(shè)計(jì)中,電子設(shè)備輪詢有效比特位v,直至其被設(shè)定,且隨后電子設(shè)備自主機(jī)設(shè)備取所述有效描述符,以執(zhí)行dma數(shù)據(jù)傳輸。然而,大量pci-e輪詢請(qǐng)求降低pci-e總線利用率(即,浪費(fèi)pci-e帶寬),導(dǎo)致極大的性能下降。為解決該問題,本發(fā)明提出了可用(available)描述符機(jī)制,可顯著降低用于輪詢描述符的有效比特位的存儲(chǔ)器讀取(memoryread,簡(jiǎn)寫為mrd)事務(wù)層封包(transactionlayerpacket,簡(jiǎn)寫為tlp),并相應(yīng)改善pci-e總線利用率。本發(fā)明的可用描述符機(jī)制的進(jìn)一步的細(xì)節(jié)描述如下。
可用描述符通知電路126指示主機(jī)設(shè)備102中是否至少一個(gè)有效描述符是可用的。當(dāng)可用描述符通知電路126指示主機(jī)設(shè)備102中至少一個(gè)有效描述符是可用的時(shí)候,dma控制器可操作來自主機(jī)設(shè)備102取至少一個(gè)有效描述符。隨后,dma控制器128參考取自主機(jī)設(shè)備102的該至少一個(gè)有效描述符執(zhí)行電子設(shè)備(例如,網(wǎng)絡(luò)交換機(jī))104和主機(jī)設(shè)備102之間的dma數(shù)據(jù)傳輸。依據(jù)本發(fā)明的可用描述符機(jī)制,當(dāng)主機(jī)存儲(chǔ)器114中至少一個(gè)有效描述符可用時(shí),主機(jī)設(shè)備102主動(dòng)設(shè)置可用描述符通知電路126。dma控制器128可通過檢查可用描述符通知電路126得知主機(jī)設(shè)備102上的有效描述符的可用性。由于可用描述符通知電路126是電子設(shè)備104的本地電路,電子設(shè)備104不需要通過通信總線(例如,pci-e總線)103發(fā)布輪詢請(qǐng)求至主機(jī)設(shè)備102。以這種方式,總線利用率可得到極大改善。
在該實(shí)施例中,可用描述符通知電路126可利用計(jì)數(shù)器127實(shí)施。計(jì)數(shù)器127維持指示主機(jī)設(shè)備102中可用的有效描述符的數(shù)量的計(jì)數(shù)值cnt。因此,dma控制器128監(jiān)測(cè)計(jì)數(shù)值cnt以決定主機(jī)設(shè)備102中是否至少一個(gè)有效描述符可用。當(dāng)計(jì)數(shù)值cnt指示主機(jī)設(shè)備102中可用的有效描述符的數(shù)量是非零值(即,主機(jī)設(shè)備102現(xiàn)在有有效描述符在主機(jī)存儲(chǔ)器114中)時(shí),dma控制器128可操作來自主機(jī)設(shè)備122取有效描述符。
圖2是本發(fā)明的可用描述符機(jī)制概念的示意圖。處理器112上運(yùn)行的主機(jī)驅(qū)動(dòng)器drv是軟件模塊,并維持描述符入列(enqueue)指針ptr11和描述符出列(dequeue)指針ptr12。dma控制器128是硬件(hw)元件,并維持描述符入列指針ptr21和描述符出列指針ptr22。主機(jī)存儲(chǔ)器114可被配置為具有隊(duì)列分配于其中,用于緩沖在主機(jī)處理器112上運(yùn)行的主機(jī)驅(qū)動(dòng)器drv準(zhǔn)備的描述符。最初,假定主機(jī)存儲(chǔ)器114中沒有有效描述符。因此,如圖2中的子示意圖(a)所示,描述符入列指針ptr11、ptr21和描述符出列指針ptr12、ptr22位于第一隊(duì)列入口。此外,計(jì)數(shù)器127被初始化以將計(jì)數(shù)值ct記錄為0。在運(yùn)行于主機(jī)處理器112上的主機(jī)驅(qū)動(dòng)器drv在所述隊(duì)列中準(zhǔn)備了兩個(gè)有效描述符之后,描述符入列指針ptr11被向下移動(dòng),如圖2中的子示意圖(b)所示。
此外,運(yùn)行于主機(jī)處理器112上的主機(jī)驅(qū)動(dòng)器drv通過通信總線103發(fā)送指示值ind至dma控制器128,其中指示值ind指示新增的有效描述符的數(shù)目。在該實(shí)施例中,ind=2。如圖2中的子示意圖(c)所示,dma控制器128指導(dǎo)計(jì)數(shù)器127響應(yīng)指示值ind調(diào)整計(jì)數(shù)值cnt。例如,cnt=cnt+ind。從而,計(jì)數(shù)器127記錄被更新到2的計(jì)數(shù)值cnt。此外,dma控制器128參考指示值ind向下移動(dòng)描述符入列指針ptr21,如圖2中的子示意圖(c)所示。
由于計(jì)數(shù)值cnt指示主機(jī)設(shè)備102具有兩個(gè)新增的有效描述符,dma控制器128可操作來自動(dòng)獲取新增的有效描述符中的每一個(gè),并將描述符出列指針ptr22向下移動(dòng)。dma控制器128不停止取所述新增有效描述符,直至描述符出列指針ptr22與描述符入列指針ptr21對(duì)齊。此外,每次dma控制器128結(jié)束自主機(jī)設(shè)備112取一個(gè)有效描述符時(shí),dma控制器128指導(dǎo)計(jì)數(shù)器127調(diào)整計(jì)數(shù)值cnt。例如,cnt=cnt-1。如圖2中的子示意圖(d)所示,在兩個(gè)新增有效描述符自主機(jī)設(shè)備102被順序取走之后,計(jì)數(shù)值cnt減少到初始值(例如,0)。
在兩個(gè)新增有效描述符自主機(jī)設(shè)備102被順序取走之后,dma控制器128更新所取得的描述符中的有效比特位。在一個(gè)示范性的設(shè)計(jì)中,運(yùn)行在主機(jī)處理器112上的主機(jī)驅(qū)動(dòng)器drv可輪詢電子設(shè)備104中的所取得的描述符的有效比特位,以將描述符出列指針ptr12移動(dòng)至正確隊(duì)列入口。在另一個(gè)示范性的設(shè)計(jì)中,運(yùn)行于主機(jī)處理器112上的主機(jī)驅(qū)動(dòng)器drv可等待由dma控制器128觸發(fā)的中斷,以將描述符出列指針ptr12移動(dòng)至正確隊(duì)列入口。如圖2中的子示意圖(e)所示,運(yùn)行于主機(jī)處理器112上的主機(jī)驅(qū)動(dòng)器drv將描述符出列指針ptr12向下移動(dòng),以使在兩個(gè)描述符的dma數(shù)據(jù)輸出操作結(jié)束時(shí),描述符出列指針ptr12與描述符入列指針ptr11對(duì)齊。
如上所述,運(yùn)行于主機(jī)處理器112上的主機(jī)驅(qū)動(dòng)器drv主動(dòng)將指示值ind寫至dma系統(tǒng)122(更具體來說,dma控制器128)。因?yàn)閷?duì)于通信總線(例如,pci-e總線)103來說,主機(jī)設(shè)備102發(fā)布的寫指示值ind的寫命令是一個(gè)發(fā)布命令(postedcommand),當(dāng)采用可用描述符機(jī)制時(shí),運(yùn)行于主機(jī)處理器112上的主機(jī)驅(qū)動(dòng)器drv對(duì)系統(tǒng)性能的影響很小。
眾所周知,若網(wǎng)絡(luò)設(shè)備以阻塞方式進(jìn)行dma數(shù)據(jù)傳輸,pci-e協(xié)議的長(zhǎng)輸入/輸出(i/o)延遲限制封包數(shù)據(jù)傳輸?shù)男阅堋<?,在通過pci-e總線發(fā)布新的讀請(qǐng)求之前,網(wǎng)絡(luò)設(shè)備需要等待先前讀請(qǐng)求的讀數(shù)據(jù)的到達(dá)。從而,當(dāng)網(wǎng)絡(luò)設(shè)備以阻塞方式進(jìn)行dma數(shù)據(jù)傳輸時(shí),在發(fā)布屬于下一描述符的新pci-e請(qǐng)求之前,網(wǎng)絡(luò)設(shè)備需要等待先前描述符的數(shù)據(jù)傳輸結(jié)束。由于pci-e具有長(zhǎng)的讀延遲,只有當(dāng)獲取當(dāng)前描述符的讀數(shù)據(jù)時(shí)才取下一描述符(即,使用dma控制器來逐個(gè)處理描述符)將帶來巨大的性能下降。為解決該問題,本發(fā)明提出預(yù)取機(jī)制,可以在后臺(tái)預(yù)取描述符并隨后執(zhí)行交叉(cross)描述符數(shù)據(jù)傳輸,以隱藏通信總線的長(zhǎng)讀延遲。本發(fā)明的預(yù)取機(jī)制的進(jìn)一步的細(xì)節(jié)描述如下。
圖3是依據(jù)本發(fā)明實(shí)施例的具有直接存儲(chǔ)器訪問能力的另一電子設(shè)備的示意圖。在該實(shí)施例中,主機(jī)設(shè)備102透過通信總線103與電子設(shè)備304通信。舉例來說,但并非限制,電子設(shè)備304可為網(wǎng)絡(luò)交換機(jī),而通信總線103可為快速外圍組件互連(pci-e)總線。在實(shí)際中,電子設(shè)備304可為能夠由主機(jī)設(shè)備102通過通信總線103管理的任一dma設(shè)備,且/或通信總線103可使用任一通信協(xié)議實(shí)現(xiàn)。在該實(shí)施例中,電子設(shè)備304包含封包處理電路124,處理待被轉(zhuǎn)發(fā)至一個(gè)或多個(gè)目的設(shè)備(沒有展示在圖中)的封包pkt,并更包含直接存儲(chǔ)器訪問(dma)系統(tǒng)312,其中dma系統(tǒng)312具有例如預(yù)取緩沖器314和dma控制器316的電路。
主機(jī)設(shè)備102加載并執(zhí)行主機(jī)驅(qū)動(dòng)器drv,以控制主機(jī)設(shè)備102和電子設(shè)備304之間的dma數(shù)據(jù)傳輸。例如,主機(jī)設(shè)備102準(zhǔn)備主機(jī)存儲(chǔ)器114中的描述符描述符0-描述符n,其中每一描述符包含dma數(shù)據(jù)傳輸控制信息,例如源地址、目的地址、數(shù)據(jù)長(zhǎng)度等。在pci-edma應(yīng)用中,一個(gè)描述符中有一個(gè)有效比特位v。當(dāng)主機(jī)驅(qū)動(dòng)器drv準(zhǔn)備好描述符的所有信息時(shí),其使用第一預(yù)設(shè)值(例如,邏輯高值“1”)設(shè)置有效比特位v。當(dāng)dma控制器316消耗該描述符時(shí),其通過使用第二預(yù)設(shè)值(例如,邏輯低值“0”)清除有效比特位v。
為隱藏通信總線(例如,pci-e總線)103的長(zhǎng)讀延遲,電子設(shè)備(例如,網(wǎng)絡(luò)交換機(jī))304采用預(yù)取機(jī)制。預(yù)取緩沖器314儲(chǔ)存一個(gè)或多個(gè)預(yù)取有效描述符(例如,描述符0-描述符m,其中n≧m)。dma控制器316參考取自主機(jī)設(shè)備102的第一有效描述符在電子設(shè)備304和主機(jī)設(shè)備102之間執(zhí)行dma數(shù)據(jù)傳輸,并在于第一有效描述符相關(guān)聯(lián)的dma數(shù)據(jù)傳輸完成之前,更自主機(jī)設(shè)備102預(yù)取至少一個(gè)第二有效描述符(例如,描述符0-描述符n中的至少一個(gè))至預(yù)取緩沖器314。換言之,電子設(shè)備304可自主機(jī)存儲(chǔ)器114預(yù)取下一描述符至其內(nèi)部的預(yù)取緩沖器314,并可同時(shí)也執(zhí)行與當(dāng)前描述符相關(guān)聯(lián)的dma數(shù)據(jù)傳輸。當(dāng)與當(dāng)前描述符相關(guān)聯(lián)的dma數(shù)據(jù)傳輸結(jié)束時(shí),電子設(shè)備304可直接在其內(nèi)部預(yù)取緩沖器314,而非在主機(jī)存儲(chǔ)器114中處理下一當(dāng)前描述符。以這種方式,通信總線103的長(zhǎng)讀延遲導(dǎo)致的氣泡時(shí)間(bubbletime)可被避免。
此外,在與第一有效描述符相關(guān)聯(lián)的dma數(shù)據(jù)傳輸期間,由于至少一個(gè)第二有效描述符(例如,描述符0-描述符n中的至少一個(gè))被預(yù)取并被儲(chǔ)存于預(yù)取緩沖器314中,dma控制器316可跨越第一有效描述符和至少一個(gè)第二有效描述符之間的界限執(zhí)行dma數(shù)據(jù)傳輸,以進(jìn)一步改善通信總線103的吞吐量。例如,存在兩個(gè)描述符(例如,一個(gè)第一有效描述符和一個(gè)第二有效描述符)指示兩個(gè)不同封包的dma數(shù)據(jù)傳輸控制信息。因?yàn)榇嬖谑孪葍?chǔ)存預(yù)取第二有效描述符的預(yù)取緩沖器314,dma控制器316可參考第二有效描述符發(fā)布讀請(qǐng)求至主機(jī)設(shè)備102,以在dma控制器316收到第一有效描述符請(qǐng)求的所有數(shù)據(jù)之前,取與第二有效描述符相關(guān)聯(lián)的數(shù)據(jù)。
圖4是依據(jù)本發(fā)明實(shí)施例的主機(jī)設(shè)備和電子設(shè)備之間的跨描述符數(shù)據(jù)傳輸?shù)氖疽鈭D。如圖4所示,電子設(shè)備304可不需要等待當(dāng)前描述符的讀數(shù)據(jù)rdata,發(fā)布讀指令以基于下一描述符自主機(jī)設(shè)備102取數(shù)據(jù)。換言之,連續(xù)描述符的讀請(qǐng)求是未完成的請(qǐng)求(outstandingrequest)。從而,由通信總線103的長(zhǎng)讀延遲導(dǎo)致的通信總線103的開銷可被減小,且通信總線103的利用率可被增加。以這種方式,系統(tǒng)性能被極大改善。
請(qǐng)注意,網(wǎng)絡(luò)應(yīng)用可受益于所提出的預(yù)取機(jī)制。一般來說,大多數(shù)封包的封包大小小于1.5kb(千字節(jié))。從而,運(yùn)行于主機(jī)處理器112上的主機(jī)驅(qū)動(dòng)器drv不為描述符指派大的緩沖區(qū)大小,以改善主機(jī)存儲(chǔ)器114的管理效率。然而,dma控制器316可能需要傳輸封包大小很大(例如,9kb)的巨型封包。由于每一描述符的緩沖區(qū)大小的限制,dma控制器316需要執(zhí)行分散-集中(scatter-gather)功能,以使用多個(gè)描述符來處理統(tǒng)一巨型封包的不同部分。所提出的跨描述符數(shù)據(jù)傳輸方案可處理這種類型的巨型封包,以改善系統(tǒng)性能。
如上所述,dma控制器316可預(yù)取由主機(jī)設(shè)備102準(zhǔn)備的有效描述符,并將所述預(yù)取有效描述符儲(chǔ)存于預(yù)取緩沖器314中,用于稍后使用。dma控制器316可采用三個(gè)提出的預(yù)取方案中的一個(gè)來決定應(yīng)當(dāng)自主機(jī)存儲(chǔ)器114中取多少個(gè)描述符,以及何時(shí)自主機(jī)存儲(chǔ)器114取描述符。提出的預(yù)取方案的進(jìn)一步的細(xì)節(jié)描述如下。
為簡(jiǎn)潔起見,下文假定通信總線103是pci-e總線,描述符大小為64b(字節(jié)),且通信總線(例如,pci-e總線)103的最大有效載荷大小是256b。此外,dma控制器316可通過使用典型的輪詢機(jī)制或所提出的可用描述符機(jī)制得知主機(jī)設(shè)備102中可用的可用描述符的數(shù)量。
圖5是依據(jù)本發(fā)明實(shí)施例的第一預(yù)取機(jī)制的示意圖。依據(jù)第一預(yù)取機(jī)制,dma控制器316不發(fā)布多個(gè)未完成的存儲(chǔ)器讀(mrd)請(qǐng)求,并且不關(guān)心pci-e協(xié)議的最大有效載荷大小。在時(shí)間點(diǎn)a,預(yù)取緩沖器314具有空閑空間可用于容納一個(gè)64字節(jié)的描述符。假定主機(jī)設(shè)備102中可用的有效描述符的大小不小于預(yù)取緩沖器314中可用的空閑空間的大小,dma控制器316發(fā)布一個(gè)mrd請(qǐng)求,以自主機(jī)設(shè)備102請(qǐng)求/預(yù)取一個(gè)64字節(jié)的有效描述符。在時(shí)間點(diǎn)b,時(shí)間點(diǎn)a發(fā)布的mrd請(qǐng)求的數(shù)據(jù)的完成(cpld)tlp尚未自主機(jī)設(shè)備102返回,且dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。從而,在時(shí)間點(diǎn)b,存在可用于在預(yù)取緩沖器314中容納兩個(gè)描述符的空閑空間。在時(shí)間點(diǎn)c,時(shí)間點(diǎn)a發(fā)布的mrd請(qǐng)求的cpld尚未自主機(jī)設(shè)備102返回,且dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。從而,在時(shí)間點(diǎn)c,存在可用于在預(yù)取緩沖器314中容納三個(gè)描述符的空閑空間。
在時(shí)間點(diǎn)d,dma控制器316響應(yīng)發(fā)布于時(shí)間點(diǎn)a的mrd請(qǐng)求獲取具有一個(gè)請(qǐng)求的64字節(jié)有效描述符的cpldtlp,其中所請(qǐng)求的64字節(jié)有效描述符自主機(jī)設(shè)備102產(chǎn)生。在時(shí)間點(diǎn)e,dma控制器316將自主機(jī)設(shè)備102預(yù)取的一個(gè)64字節(jié)有效描述符儲(chǔ)存至預(yù)取緩沖器314。從而,在時(shí)間點(diǎn)e,存在可用于在預(yù)取緩沖器314中容納兩個(gè)描述符的空閑空間。
發(fā)布于時(shí)間點(diǎn)a的mrd請(qǐng)求的cpldtlp被返回,且預(yù)取緩沖器314現(xiàn)在具有可以容納64字節(jié)描述符的空閑空間。假定主機(jī)設(shè)備102中可用的有效描述符的大小不小于預(yù)取緩沖器314可用的空閑空間的大小,dma控制器316在時(shí)間點(diǎn)f發(fā)布一個(gè)mrd請(qǐng)求以自主機(jī)設(shè)備102請(qǐng)求/預(yù)取兩個(gè)64字節(jié)有效描述符。在時(shí)間點(diǎn)g,dma控制器316響應(yīng)在時(shí)間點(diǎn)f發(fā)布的mrd請(qǐng)求獲取兩個(gè)所請(qǐng)求的64字節(jié)有效描述符,其中該兩個(gè)所請(qǐng)求的64字節(jié)有效比特位自主機(jī)設(shè)備102產(chǎn)生。在時(shí)間點(diǎn)h,dma控制器316將自主機(jī)設(shè)備102預(yù)取的兩個(gè)64字節(jié)有效描述符儲(chǔ)存至預(yù)取緩沖器314。從而,預(yù)取緩沖器314裝滿了將被dma控制器316消耗用于dma數(shù)據(jù)傳輸?shù)拿枋龇?/p>
概括地講,當(dāng)預(yù)取緩沖器314在第一時(shí)間點(diǎn)(例如,如圖5所示的時(shí)間點(diǎn)a)具有可用于容納至少一個(gè)第一有效描述符的新空閑空間時(shí),dma控制器316發(fā)布第一讀請(qǐng)求至主機(jī)設(shè)備102,以自主機(jī)設(shè)備102預(yù)取該至少一個(gè)第一有效描述符;且當(dāng)預(yù)取緩沖器314在第二時(shí)間點(diǎn)(例如,如圖5所示的時(shí)間點(diǎn)e)具有可用于容納至少一個(gè)第二有效描述符的新空閑空間時(shí),dma控制器316發(fā)布第二讀請(qǐng)求至主機(jī)設(shè)備102,以自主機(jī)設(shè)備102預(yù)取該至少一個(gè)第二有效描述符。第一讀請(qǐng)求和第二讀請(qǐng)求是在不同時(shí)間點(diǎn)自dma控制器316發(fā)布的連續(xù)讀請(qǐng)求。依據(jù)第一預(yù)取機(jī)制,第一讀請(qǐng)求和第二讀請(qǐng)求不是未完成的讀請(qǐng)求,且dma控制器316不考慮pci-e協(xié)議的最大有效載荷來決定何時(shí)發(fā)布第一讀請(qǐng)求和第二讀請(qǐng)求,即,dma控制器316不基于預(yù)取緩沖器314中的空閑空間和pci-e總線的最大有效載荷大小參數(shù)控制預(yù)取描述符大小。
圖6是依據(jù)本發(fā)明實(shí)施例的第二預(yù)取機(jī)制的示意圖。依據(jù)第二預(yù)取機(jī)制,dma控制器316發(fā)布多個(gè)未完成的存儲(chǔ)器讀(mrd)請(qǐng)求,并且不關(guān)心pci-e協(xié)議的最大有效載荷大小。在時(shí)間點(diǎn)a,預(yù)取緩沖器314具有空閑空間可用于容納一個(gè)64字節(jié)的描述符。假定主機(jī)設(shè)備102中可用的有效描述符的大小不小于預(yù)取緩沖器314中可用的空閑空間的大小,dma控制器316發(fā)布一個(gè)mrd請(qǐng)求,以自主機(jī)設(shè)備102請(qǐng)求/預(yù)取一個(gè)64字節(jié)的有效描述符。
在時(shí)間點(diǎn)b,時(shí)間點(diǎn)a發(fā)布的mrd請(qǐng)求的cpldtlp尚未自主機(jī)設(shè)備102返回,且dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。從而,預(yù)取緩沖器314可容納又一個(gè)64字節(jié)描述符。假定主機(jī)設(shè)備102中可用的有效描述符的大小不小于預(yù)取緩沖器314可用的空閑空間的大小,dma控制器316發(fā)布一個(gè)新的mrd請(qǐng)求以自主機(jī)設(shè)備102請(qǐng)求/預(yù)取另一個(gè)64字節(jié)有效描述符。
在時(shí)間點(diǎn)c,時(shí)間點(diǎn)a發(fā)布的mrd請(qǐng)求的cpldtlp和時(shí)間點(diǎn)b發(fā)布的mrd請(qǐng)求的cpldtlp尚未自主機(jī)設(shè)備102返回,且dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。從而,預(yù)取緩沖器314可容納又一個(gè)64字節(jié)描述符。假定主機(jī)設(shè)備102中可用的有效描述符的大小不小于預(yù)取緩沖器314可用的空閑空間的大小,dma控制器316發(fā)布一個(gè)新的mrd請(qǐng)求以自主機(jī)設(shè)備102請(qǐng)求/預(yù)取再一個(gè)64字節(jié)有效描述符。
在時(shí)間點(diǎn)d,dma控制器316響應(yīng)發(fā)布于時(shí)間點(diǎn)a的mrd請(qǐng)求獲取具有一個(gè)請(qǐng)求的64字節(jié)有效描述符的cpldtlp,其中所請(qǐng)求的64字節(jié)有效描述符自主機(jī)設(shè)備102產(chǎn)生。在時(shí)間點(diǎn)e,dma控制器316將自主機(jī)設(shè)備102預(yù)取的一個(gè)64字節(jié)有效描述符儲(chǔ)存至預(yù)取緩沖器314。在時(shí)間點(diǎn)f,dma控制器316響應(yīng)發(fā)布于時(shí)間點(diǎn)b的mrd請(qǐng)求獲取具有一個(gè)請(qǐng)求的64字節(jié)有效描述符的cpldtlp,其中所請(qǐng)求的64字節(jié)有效描述符自主機(jī)設(shè)備102產(chǎn)生。在時(shí)間點(diǎn)g,dma控制器316將自主機(jī)設(shè)備102預(yù)取的一個(gè)64字節(jié)有效描述符儲(chǔ)存至預(yù)取緩沖器314。在時(shí)間點(diǎn)h,dma控制器316響應(yīng)發(fā)布于時(shí)間點(diǎn)c的mrd請(qǐng)求獲取具有一個(gè)請(qǐng)求的64字節(jié)有效描述符的cpldtlp,其中所請(qǐng)求的64字節(jié)有效描述符自主機(jī)設(shè)備102產(chǎn)生。在時(shí)間點(diǎn)i,dma控制器316將自主機(jī)設(shè)備102預(yù)取的一個(gè)64字節(jié)有效描述符儲(chǔ)存至預(yù)取緩沖器314。
概括地講,當(dāng)預(yù)取緩沖器314在第一時(shí)間點(diǎn)(例如,如圖6所示的時(shí)間點(diǎn)a)具有可用于容納至少一個(gè)第一有效描述符的新空閑空間時(shí),dma控制器316發(fā)布第一讀請(qǐng)求至主機(jī)設(shè)備102,以自主機(jī)設(shè)備102預(yù)取該至少一個(gè)第一有效描述符;且當(dāng)預(yù)取緩沖器314在第二時(shí)間點(diǎn)(例如,如圖6所示的時(shí)間點(diǎn)b)具有可用于容納至少一個(gè)第二有效描述符的新空閑空間時(shí),dma控制器316發(fā)布第二讀請(qǐng)求至主機(jī)設(shè)備102,以自主機(jī)設(shè)備102預(yù)取該至少一個(gè)第二有效描述符。第一讀請(qǐng)求和第二讀請(qǐng)求是在不同時(shí)間點(diǎn)自dma控制器316發(fā)布的連續(xù)讀請(qǐng)求。依據(jù)第二預(yù)取機(jī)制,第一讀請(qǐng)求和第二讀請(qǐng)求是未完成的讀請(qǐng)求,且dma控制器316不考慮pci-e協(xié)議的最大有效載荷來決定何時(shí)發(fā)布第一讀請(qǐng)求和第二讀請(qǐng)求,即,dma控制器316不基于預(yù)取緩沖器314中的空閑空間和pci-e總線的最大有效載荷大小參數(shù)控制預(yù)取描述符大小。由于第二預(yù)取機(jī)制使用多個(gè)未完成的請(qǐng)求(multiple-outstanding)來隱藏長(zhǎng)pci-e讀延遲,和第一預(yù)取機(jī)制相比,第二預(yù)取機(jī)制可以極大改善pci-e吞吐量。
圖7是依據(jù)本發(fā)明實(shí)施例的第三預(yù)取機(jī)制的示意圖。依據(jù)第三預(yù)取機(jī)制,dma控制器316發(fā)布多個(gè)未完成的存儲(chǔ)器讀(mrd)請(qǐng)求,并且關(guān)心pci-e協(xié)議的最大有效載荷大小。在時(shí)間點(diǎn)a,預(yù)取緩沖器314具有空閑空間可用于容納一個(gè)64字節(jié)的描述符。然而,預(yù)取緩沖器314中可用的空閑空間的大小小于一個(gè)pci-e協(xié)議的最大有效載荷大小。從而,dma控制器316不發(fā)布一個(gè)mrd請(qǐng)求自主機(jī)設(shè)備102請(qǐng)求/預(yù)取一個(gè)64字節(jié)的有效描述符。
在時(shí)間點(diǎn)b,dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。從而,存在可容納兩個(gè)64字節(jié)描述符的空閑空間。然而,預(yù)取緩沖器314中可用的空閑空間的大小仍小于一個(gè)pci-e協(xié)議的最大有效載荷大小。從而,dma控制器316不發(fā)布一個(gè)mrd請(qǐng)求自主機(jī)設(shè)備102請(qǐng)求/預(yù)取兩個(gè)64字節(jié)的有效描述符。
在時(shí)間點(diǎn)c,dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。從而,存在可容納三個(gè)64字節(jié)描述符的空閑空間。然而,預(yù)取緩沖器314中可用的空閑空間的大小仍小于一個(gè)pci-e協(xié)議的最大有效載荷大小。從而,dma控制器316不發(fā)布一個(gè)mrd請(qǐng)求自主機(jī)設(shè)備102請(qǐng)求/預(yù)取三個(gè)64字節(jié)的有效描述符。
在時(shí)間點(diǎn)d,dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。從而,存在可容納四個(gè)64字節(jié)描述符的空閑空間。dma控制器316偵測(cè)到預(yù)取緩沖器314中可用的空閑空間的大小不小于一個(gè)pci-e協(xié)議的最大有效載荷大小。假定主機(jī)設(shè)備102中可用的有效描述符的大小不小于預(yù)取緩沖器314可用的空閑空間的大小。在時(shí)間點(diǎn)e,dma控制器316發(fā)布一個(gè)mrd請(qǐng)求以自主機(jī)設(shè)備102請(qǐng)求/預(yù)取四個(gè)64字節(jié)有效描述符。
在時(shí)間點(diǎn)f,時(shí)間點(diǎn)e發(fā)布的mrd請(qǐng)求的cpldtlp尚未自主機(jī)設(shè)備102返回,且dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。盡管預(yù)取緩沖器314可容納一個(gè)額外的64字節(jié)描述符,預(yù)取緩沖器314中新創(chuàng)建的可用空閑空間的大小小于一個(gè)pci-e協(xié)議的最大有效載荷大小。從而,dma控制器316不發(fā)布一個(gè)新的mrd請(qǐng)求自主機(jī)設(shè)備102請(qǐng)求/預(yù)取一個(gè)64字節(jié)的有效描述符。
在時(shí)間點(diǎn)g,時(shí)間點(diǎn)e發(fā)布的mrd請(qǐng)求的cpldtlp尚未自主機(jī)設(shè)備102返回,且dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。盡管預(yù)取緩沖器314可容納兩個(gè)額外的64字節(jié)描述符,預(yù)取緩沖器314中新創(chuàng)建的可用空閑空間的大小仍小于一個(gè)pci-e協(xié)議的最大有效載荷大小。從而,dma控制器316不發(fā)布一個(gè)新的mrd請(qǐng)求自主機(jī)設(shè)備102請(qǐng)求/預(yù)取一個(gè)64字節(jié)的有效描述符。
在時(shí)間點(diǎn)h,時(shí)間點(diǎn)e發(fā)布的mrd請(qǐng)求的cpldtlp尚未自主機(jī)設(shè)備102返回,且dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。盡管預(yù)取緩沖器314可容納三個(gè)額外的64字節(jié)描述符,預(yù)取緩沖器314中新創(chuàng)建的可用空閑空間的大小仍小于一個(gè)pci-e協(xié)議的最大有效載荷大小。從而,dma控制器316不發(fā)布一個(gè)新的mrd請(qǐng)求自主機(jī)設(shè)備102請(qǐng)求/預(yù)取一個(gè)64字節(jié)的有效描述符。
在時(shí)間點(diǎn)i,時(shí)間點(diǎn)e發(fā)布的mrd請(qǐng)求的cpldtlp尚未自主機(jī)設(shè)備102返回,且dma控制器316已消耗又一個(gè)描述符以執(zhí)行主機(jī)設(shè)備102和電子設(shè)備304之間的一次dma數(shù)據(jù)傳輸。因此,預(yù)取緩沖器314選擇具有可容納四個(gè)64字節(jié)描述符的額外空閑空間。dma控制器316偵測(cè)到預(yù)取緩沖器314中新創(chuàng)建的空閑空間的大小不小于一個(gè)pci-e協(xié)議的最大有效載荷大小。假定主機(jī)設(shè)備102中可用的有效描述符的大小不小于預(yù)取緩沖器314可用的新創(chuàng)建的空閑空間的大小。在時(shí)間點(diǎn)j,dma控制器316發(fā)布一個(gè)mrd請(qǐng)求以自主機(jī)設(shè)備102請(qǐng)求/預(yù)取四個(gè)64字節(jié)有效描述符。
在時(shí)間點(diǎn)k,dma控制器316響應(yīng)發(fā)布于時(shí)間點(diǎn)e的mrd請(qǐng)求獲取具有四個(gè)請(qǐng)求的64字節(jié)有效描述符的cpldtlp,其中所請(qǐng)求的四個(gè)64字節(jié)有效描述符自主機(jī)設(shè)備102產(chǎn)生。在時(shí)間點(diǎn)l,dma控制器316將自主機(jī)設(shè)備102預(yù)取的四個(gè)64字節(jié)有效描述符儲(chǔ)存至預(yù)取緩沖器314。在時(shí)間點(diǎn)m,dma控制器316響應(yīng)發(fā)布于時(shí)間點(diǎn)j的mrd請(qǐng)求獲取具有四個(gè)請(qǐng)求的64字節(jié)有效描述符的cpldtlp,其中所請(qǐng)求的四個(gè)64字節(jié)有效描述符自主機(jī)設(shè)備102產(chǎn)生。在時(shí)間點(diǎn)n,dma控制器316將自主機(jī)設(shè)備102預(yù)取的四個(gè)64字節(jié)有效描述符儲(chǔ)存至預(yù)取緩沖器314。
概括地講,當(dāng)預(yù)取緩沖器314在第一時(shí)間點(diǎn)(例如,如圖7所示的時(shí)間點(diǎn)e)具有可用于容納多個(gè)第一有效描述符的新空閑空間時(shí),dma控制器316發(fā)布第一讀請(qǐng)求至主機(jī)設(shè)備102,以自主機(jī)設(shè)備102預(yù)取該多個(gè)第一有效描述符;且當(dāng)預(yù)取緩沖器314在第二時(shí)間點(diǎn)(例如,如圖7所示的時(shí)間點(diǎn)j)具有可用于容納多個(gè)第二有效描述符的新空閑空間時(shí),dma控制器316發(fā)布第二讀請(qǐng)求至主機(jī)設(shè)備102,以自主機(jī)設(shè)備102預(yù)取該多個(gè)第二有效描述符。第一讀請(qǐng)求和第二讀請(qǐng)求是在不同時(shí)間點(diǎn)自dma控制器316發(fā)布的連續(xù)讀請(qǐng)求。依據(jù)第三預(yù)取機(jī)制,第一讀請(qǐng)求和第二讀請(qǐng)求是未完成的讀請(qǐng)求,且dma控制器316考慮pci-e協(xié)議的最大有效載荷來決定何時(shí)發(fā)布第一讀請(qǐng)求和第二讀請(qǐng)求,即,dma控制器316基于預(yù)取緩沖器314中的空閑空間和pci-e總線的最大有效載荷大小參數(shù)控制預(yù)取描述符大小。
例如,在第一時(shí)間點(diǎn)能夠容納多個(gè)第一有效描述符的新的空閑空間不小于最大有效載荷大小,且在第二時(shí)間點(diǎn)能夠容納多個(gè)第二有效描述符的新的空閑空間不小于最大有效載荷大小。由于第三預(yù)取機(jī)制使用多個(gè)未完成的請(qǐng)求來隱藏長(zhǎng)pci-e讀延遲,和第一預(yù)取機(jī)制相比,第三預(yù)取機(jī)制可以改善pci-e吞吐量。此外,由于第三預(yù)取機(jī)制考慮最大有效載荷來決定何時(shí)發(fā)布自主機(jī)設(shè)備102預(yù)取描述符的一個(gè)mrd請(qǐng)求,電子設(shè)備304發(fā)布的mrd請(qǐng)求的數(shù)量可被減少,且響應(yīng)自電子設(shè)備304發(fā)布的mrd請(qǐng)求,自主機(jī)設(shè)備102返回的一個(gè)cpldtlp的有效載荷大小可被最大化。與第一預(yù)取機(jī)制和第二預(yù)取機(jī)制中的任何一個(gè)相比,由于pci-e帶寬的損失最小化,第三預(yù)取機(jī)制可減少更多pci-e吞吐量的開銷。
在圖7所示的范例中,每次預(yù)取緩沖器314中可用于容納新描述符的空閑空間的大小等于pci-e協(xié)議的一個(gè)最大有效載荷大小時(shí),用于預(yù)取多個(gè)描述符的一個(gè)mrd請(qǐng)求被發(fā)布。然而,其并非為本發(fā)明的限制。可選地,當(dāng)預(yù)取緩沖器314中可用于容納新描述符的空閑空間的大小大于pci-e協(xié)議的一個(gè)最大有效載荷大小時(shí),用于預(yù)取多個(gè)描述符的一個(gè)mrd請(qǐng)求可被發(fā)布,其中多個(gè)cpldtlp可響應(yīng)一個(gè)mrd請(qǐng)求自主機(jī)設(shè)備102被返回。減少通過通信總線103傳輸?shù)膍rd請(qǐng)求及/或增大一個(gè)cpldtlp的有效載荷大小的相同的目的可以被實(shí)現(xiàn)。
圖8是依據(jù)本發(fā)明實(shí)施例的dma方法800的流程圖。該dma方法可以實(shí)施于如圖1和圖3的電子設(shè)備中。如圖8的步驟810所示,利用可用描述符通知電路指示是否主機(jī)設(shè)備中的至少一個(gè)有效描述符可用,其中可用描述符通知電路由至少主機(jī)設(shè)備設(shè)置,且至少一有效描述符記錄直接存儲(chǔ)器訪問數(shù)據(jù)傳輸控制信息。在步驟820中,當(dāng)可用描述符通知電路指示主機(jī)設(shè)備中的至少一個(gè)有效描述符可用時(shí),自主機(jī)設(shè)備取至少一個(gè)有效描述符。在步驟830中,參考取自主機(jī)設(shè)備的至少一個(gè)有效描述符在電子設(shè)備和主機(jī)設(shè)備之間執(zhí)行直接存儲(chǔ)器訪問數(shù)據(jù)傳輸。在閱讀了上述說明書文字之后,本領(lǐng)域技術(shù)人員了解步驟801-803的具體細(xì)節(jié),為簡(jiǎn)潔起見,不再贅述。
如圖1所示,電子設(shè)備104采用所提出的可用描述符機(jī)制,通過減少經(jīng)由通信總線103傳輸?shù)妮喸僲rd請(qǐng)求改善總線利用率。如圖3所示,通過使用多個(gè)未完成的請(qǐng)求,電子設(shè)備304采用所提出的預(yù)取機(jī)制隱藏通信總線的長(zhǎng)讀延遲,并最小化總線帶寬的損失。然而,其僅用作說明,并非為本發(fā)明的限制。例如,電子設(shè)備(例如,網(wǎng)絡(luò)交換機(jī))可采用所提出的可用描述符機(jī)制和所提出的預(yù)取機(jī)制,以同時(shí)受益于所提出的可用描述符機(jī)制和所提出的預(yù)取機(jī)制。這也落入本發(fā)明的范圍。
盡管已經(jīng)在文中使用不同的方法、設(shè)備以及系統(tǒng)來描述和示出了一些示例性的技術(shù),但是本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理解的是:可以在不脫離所要求保護(hù)的主題的情況下進(jìn)行各種其它修改以及進(jìn)行等同物替換。此外,在不脫離文中描述的中心構(gòu)思的情況下,可以進(jìn)行許多修改以使特定的情況適應(yīng)于所要求保護(hù)的主題的教導(dǎo)。因此,意在所要求保護(hù)的主題不限制于所公開的特定示例,而且這樣的要求保護(hù)的主題還可以包括落在所附權(quán)利要求的范圍內(nèi)的所有實(shí)施及它們的等同物。