具有降低的延遲的遠(yuǎn)程直接存儲器訪問的制作方法
【專利摘要】本公開提供了用于具有降低的延遲的遠(yuǎn)程直接存儲器訪問(RDMA)的系統(tǒng)和方法。RDMA允許直接在聯(lián)網(wǎng)設(shè)備中的存儲器緩沖器之間傳輸信息而不需要實(shí)質(zhì)性處理。盡管RDMA要求尚未預(yù)注冊的設(shè)備進(jìn)行注冊/解除注冊,但具有降低的延遲的RDMA在注冊/解除注冊過程中向中間緩沖器傳輸信息,利用了將通常被浪費(fèi)在等待這些過程完成的時間,并且降低了注冊源緩沖器時傳輸?shù)男畔⒘?。以此方式,RDMA事務(wù)可被更快速地完成。具有降低的延遲的RDMA可用于加快各種信息事務(wù)。例如,具有降低的延遲的RDMA可用于將設(shè)備內(nèi)的信息流化或者可用于直接向應(yīng)用緩沖器傳輸用于設(shè)備外部的信息源的信息。
【專利說明】具有降低的延遲的遠(yuǎn)程直接存儲器訪問
[0001]相關(guān)申請的交叉引用
[0002]本申請涉及與其同時提交的標(biāo)題為“Continuous Informat1n Transfer with
Reduced Latency (具有降低的延遲的連續(xù)信息傳輸)”的PCT申請?zhí)朹 (代理人案卷號P41676PCT),該申請的公開通過引用以其整體結(jié)合在此。
[0003]領(lǐng)域
[0004]以下公開涉及計算設(shè)備之間的信息傳輸,并且更具體地涉及通過具有低延遲的遠(yuǎn)程直接存儲器訪問進(jìn)行信息傳輸。
[0005]背景
[0006]在計算設(shè)備上執(zhí)行的應(yīng)用可依賴于計算設(shè)備中的處理資源(諸如例如操作系統(tǒng)內(nèi)核)以便與駐留在網(wǎng)絡(luò)上的信息源交互。內(nèi)核是形成應(yīng)用和在計算系統(tǒng)中在硬件水平上完成的實(shí)際數(shù)據(jù)處理之間的橋梁的處理引擎。在此期間,操作系統(tǒng)內(nèi)核可與硬件水平資源(諸如網(wǎng)絡(luò)接口電路)通信以便致使將信息傳輸?shù)骄W(wǎng)絡(luò)資源或從其接收。盡管允許網(wǎng)絡(luò)交互,性能會極大地受操作系統(tǒng)內(nèi)核的活動水平的影響。網(wǎng)絡(luò)接口電路所接收的通信可在其中操作系統(tǒng)內(nèi)核忙于其他任務(wù)的實(shí)例下被延遲。結(jié)果是,已經(jīng)開發(fā)了不涉及計算設(shè)備的主處理資源的用于傳送網(wǎng)絡(luò)信息的其他方法。遠(yuǎn)程直接存儲器訪問(RDMA)允許聯(lián)網(wǎng)設(shè)備直接將信息放在另一個聯(lián)網(wǎng)設(shè)備的存儲器中而不涉及主處理資源(例如,操作系統(tǒng)內(nèi)核)。盡管RDMA允許具有更低延遲的實(shí)質(zhì)上增加的網(wǎng)絡(luò)吞吐量,仍存在某些問題。RDMA可例如通過從由應(yīng)用使用的存儲器緩沖器提取信息以及將該信息直接傳輸?shù)骄W(wǎng)絡(luò)接口電路可訪問的存儲器緩沖器來操作,該網(wǎng)絡(luò)接口電路然后可將該信息傳輸?shù)骄W(wǎng)絡(luò)上的其他設(shè)備。然而,操作系統(tǒng)內(nèi)核可將應(yīng)用緩沖器的內(nèi)容移動到虛擬存儲器而不提醒,并且因此應(yīng)用存儲器緩沖器必須首先進(jìn)行注冊從而防止內(nèi)容在RDMA事務(wù)過程中被移動,然后進(jìn)行解除注冊從而釋放存儲器空間以便由其他系統(tǒng)資源使用。應(yīng)用存儲器緩沖器的注冊/解除注冊在RDMA中引入了可降低傳輸信息的速度的延遲并且因此可消極地影響通信性能。
[0007]附圖簡要說明
[0008]所要求保護(hù)的主題的各實(shí)施例的特征和優(yōu)點(diǎn)將隨著以下詳細(xì)描述的進(jìn)行并且當(dāng)參照附圖時變得明顯,其中相似的參考號指示相似的部件,并且在附圖中:
[0009]圖1示出根據(jù)本公開的至少一個實(shí)施例的被配置成用于具有降低的延遲的遠(yuǎn)程直接存儲器訪問的示例系統(tǒng);
[0010]圖2示出根據(jù)本公開的至少一個實(shí)施例的使用具有降低的延遲的遠(yuǎn)程直接存儲器訪問的不例信息傳輸;
[0011]圖3示出根據(jù)本公開的至少一個實(shí)施例的具有降低的延遲的遠(yuǎn)程直接存儲器訪問過程中的注冊的示例;
[0012]圖4示出根據(jù)本公開的至少一個實(shí)施例的具有降低的延遲的遠(yuǎn)程直接存儲器訪問過程中的解除注冊的示例;
[0013]圖5示出根據(jù)本公開的至少一個實(shí)施例的用于有降低的延遲的遠(yuǎn)程直接存儲器訪問的示例操作的流程圖;
[0014]圖6示出根據(jù)本公開的至少一個實(shí)施例的使用具有降低的延遲的遠(yuǎn)程直接存儲器訪問來流傳輸信息的不例;
[0015]圖7示出根據(jù)本公開的至少一個實(shí)施例的用于使用有降低的延遲的遠(yuǎn)程直接存儲器訪問來流傳輸信息的示例操作的流程圖;
[0016]圖8示出根據(jù)本公開的至少一個實(shí)施例的使用具有降低的延遲的遠(yuǎn)程直接存儲器訪問直接向應(yīng)用緩沖器傳輸信息的外部源的示例;以及
[0017]圖9示出根據(jù)本公開的至少一個實(shí)施例的使用具有降低的延遲的遠(yuǎn)程直接存儲器訪問直接向應(yīng)用緩沖器傳輸信息的外部信息源的示例操作的流程圖;以及
[0018]盡管將參考說明性實(shí)施例進(jìn)行以下詳細(xì)描述,其許多替代、修改和變化將對本領(lǐng)域普通技術(shù)人員明顯。
[0019]詳細(xì)描述
[0020]本公開描述了用于具有降低的延遲的遠(yuǎn)程直接存儲器訪問的系統(tǒng)和方法。總體上,在遠(yuǎn)程直接存儲器訪問(RDMA)中,駐留在一個聯(lián)網(wǎng)設(shè)備上的信息可直接被傳輸?shù)搅硪粋€聯(lián)網(wǎng)設(shè)備的存儲器中。RDMA還對應(yīng)于初始地由RDMA聯(lián)盟和直接訪問傳輸(DAT)協(xié)作提出并且從此以后已經(jīng)被結(jié)合到高性能聯(lián)網(wǎng)架構(gòu)(諸如例如InfiniBand?和iWARP)中的現(xiàn)有的通信協(xié)議。盡管在此出于解釋參照了現(xiàn)有的RDMA通信協(xié)議的多個方面,當(dāng)描述所公開的實(shí)施例時,這些實(shí)施例的實(shí)現(xiàn)方式不限于使用現(xiàn)有的RDMA通信協(xié)議,而是可用于允許聯(lián)網(wǎng)設(shè)備直接將信息傳輸?shù)搅硪粋€聯(lián)網(wǎng)設(shè)備的存儲器中的任何現(xiàn)有的或剛剛出現(xiàn)的通信系統(tǒng)。
[0021]在一個實(shí)施例中,應(yīng)用緩沖器可被配置成用于致使直接將信息傳輸?shù)骄W(wǎng)絡(luò)接口電路(NIC)緩沖器,或者可替代地,NIC緩沖器可被配置成用于致使將信息傳輸?shù)綉?yīng)用緩沖器而不涉及設(shè)備中的處理電路(例如,操作系統(tǒng)內(nèi)核)。然而,操作系統(tǒng)內(nèi)核可被配置成用于在正常設(shè)備操作過程中嘗試將應(yīng)用緩沖器的內(nèi)容移動到另一個位置(例如,虛擬存儲器),以便釋放物理存儲器資源用于其他設(shè)備活動。在完成傳輸之前移動應(yīng)用緩沖器的內(nèi)容將損壞傳輸。應(yīng)用緩沖器然后必須注冊以便防止內(nèi)容被移動并且必須在傳輸完成之后解除注冊,以便釋放存儲器空間用于動態(tài)重新分配。注冊和/或解除注冊存儲器空間耗費(fèi)時間并且可向RDMA引入延遲。然而,可通過在注冊和/或解除注冊過程中進(jìn)行其他過程來避免這種延遲。“重疊”這些任務(wù)允許整體的傳輸過程完成的更快。
[0022]例如,源緩沖器(例如,應(yīng)用緩沖器)可能想要向目標(biāo)緩沖器(例如,NIC緩沖器)傳輸信息。源緩沖器可被配置成用于在注冊過程中將信息復(fù)制到中間緩沖器,并且中間緩沖器可被配置成用于然后將其接收到的信息從源緩沖器傳輸?shù)侥繕?biāo)緩沖器。結(jié)果是,源緩沖器無需等待注冊完成來開始信息傳輸,并且降低了注冊完成之后要傳輸?shù)男畔⒘?。在一個實(shí)施例中,可基于例如注冊時長實(shí)驗(yàn)性地確定在注冊過程中要傳輸?shù)男畔⒘?。例如,可將信息成塊按增長的大小從源緩沖器傳輸?shù)街虚g緩沖器,直到實(shí)現(xiàn)默認(rèn)注冊偏移或者在注冊繼續(xù)時。當(dāng)接收到全部信息塊時,中間緩沖器可將全部塊傳輸?shù)侥繕?biāo)緩沖器。當(dāng)注冊完成時,源緩沖器可將信息的剩余部分(例如,尚未傳輸?shù)街虚g緩沖器)直接通過RDMA傳輸?shù)侥繕?biāo)緩沖器。
[0023]在相同的或不同的實(shí)施例中,在注冊完成之后,源緩沖器可被配置成用于開始將信息傳輸?shù)搅硪粋€中間緩沖器,從而幫助降低由解除注冊引起的延遲。例如,當(dāng)源緩沖器已注冊時,從源緩沖器內(nèi)容底部附近的信息偏移(例如,基于預(yù)測的解除注冊時長)可被傳輸?shù)狡渌虚g緩沖器。因此,當(dāng)源緩沖器已注冊時要傳輸?shù)男畔⒘勘粶p少偏移量,這降低了傳輸時長。解除注冊可在從已注冊的源緩沖器傳輸信息完成之后立即開始,并且傳輸?shù)狡渌虚g緩沖器的信息可在解除注冊過程中被傳輸?shù)侥繕?biāo)緩沖器。結(jié)果是,源緩沖器被配置成在注冊和解除注冊過程中將信息傳輸?shù)侥繕?biāo)緩沖器,降低了注冊源緩沖器時要傳輸?shù)男畔⒘?,并且與現(xiàn)有的RDMA事務(wù)相比降低了延遲。
[0024]在相同的或不同的實(shí)施例中,具有降低的延遲的RDMA可用于創(chuàng)建到或從聯(lián)網(wǎng)設(shè)備的連續(xù)直接信息傳輸(例如,信息的流傳輸)。例如,應(yīng)用緩沖器和NIC緩沖器可被配置成用于暴露本地緩沖器用于RDMA通信。應(yīng)用緩沖器然后可被配置成用于將地址信息(例如,分散一聚集列表條目)傳輸?shù)絅IC緩沖器的本地緩沖器中,并且同樣,NIC緩沖器可被配置成用于將地址信息傳輸?shù)綉?yīng)用緩沖器的本地緩沖器中。當(dāng)任一緩沖器希望將信息傳輸?shù)狡渌彌_器(例如,應(yīng)用緩沖器希望將信息傳輸?shù)絅IC緩沖器),源(例如,應(yīng)用)緩沖器可訪問其本地緩沖器以便確定與目標(biāo)(例如,NIC)緩沖器中的可用存儲器相對應(yīng)的至少一個地址。如果在本地緩沖器中不存在地址(例如,不存在任何地址信息,所有地址已經(jīng)被使用等等),源緩沖器可監(jiān)控與本地緩沖器相關(guān)聯(lián)的完成隊列,以便指示新的信息已經(jīng)被寫入本地緩沖器。根據(jù)新的信息已經(jīng)被寫入本地緩沖器的指示,源緩沖器可訪問本地緩沖器以檢索與目標(biāo)緩沖器中的可用存儲器位置相對應(yīng)的至少一個地址。
[0025]進(jìn)一步根據(jù)以上實(shí)施例,源緩沖器還可被配置成用于確定將信息傳輸?shù)侥繕?biāo)緩沖器的方法。當(dāng)使用現(xiàn)有的RDMA協(xié)議時,可使用內(nèi)聯(lián)數(shù)據(jù)傳輸方法來傳輸少量數(shù)據(jù)而無需注冊應(yīng)用緩沖器。如果將要傳輸更大量的數(shù)據(jù)(例如,大于特定或預(yù)定量的數(shù)據(jù)量),可使用諸如先前所描述的具有降低的延遲的RDMA傳輸方法。源緩沖器然后可被配置成用于致使基于可用存儲器位置的地址和所確定的傳輸方法來傳輸數(shù)據(jù)。以此方式,信息可被連續(xù)地傳輸?shù)侥繕?biāo)緩沖器中的開放存儲器位置,具有很少或沒有由于確定信息的可用存儲器位置、注冊、解除注冊等等引起的延遲。
[0026]在相同的或不同的實(shí)施例中,信息可被直接從設(shè)備外部的信息源(例如,駐留在網(wǎng)絡(luò)上)傳輸?shù)綉?yīng)用緩沖器,而無需首先被存儲在NIC緩沖器中,如現(xiàn)有的RDMA事務(wù)所要求的。例如,地址緩沖器可包括外部源可用于直接將信息傳輸?shù)綉?yīng)用緩沖器的應(yīng)用緩沖器地址信息(例如,分散一聚集列表條目)。外部源然后可被配置成用于檢查地址緩沖器以便確定與應(yīng)用緩沖器中的可用存儲器位置相關(guān)聯(lián)的地址是否可用。如果應(yīng)用緩沖器中的可用存儲器位置的地址被確定可用,外部源可使用這些地址來直接將信息傳輸?shù)綉?yīng)用緩沖器。如果沒有地址被確定為可用(例如,地址緩沖器為空,地址緩沖器中的所有地址已經(jīng)被使用等等),則外部源可開始將信息傳輸?shù)絅IC緩沖器,如同在現(xiàn)有的RDMA事務(wù)中一樣。然而,外部源還可被配置成用于繼續(xù)檢查地址緩沖器以確定存儲器位置是否變得可用于直接將信息傳輸?shù)綉?yīng)用緩沖器。如果存儲器位置變得可用,則外部源可開始直接將信息傳輸?shù)綉?yīng)用緩沖器。在一個實(shí)施例中,直接傳輸?shù)綉?yīng)用緩沖器的信息可包括指示其跟隨已經(jīng)被傳輸?shù)絅IC緩沖器的信息的序號。結(jié)果是,可進(jìn)一步降低延遲。
[0027]圖1示出根據(jù)本公開的至少一個實(shí)施例的被配置成用于具有降低的延遲的RMDA的示例系統(tǒng)100。系統(tǒng)100可包括形成系統(tǒng)的單個設(shè)備或多個設(shè)備,被配置成用于至少處理信息并且在網(wǎng)絡(luò)上通信。系統(tǒng)100的示例可包括但不限于:移動通信設(shè)備,諸如基于安卓?操作系統(tǒng)(OS)、1S?、黑莓? OS、掌上? OS、塞班? OS等等的蜂窩手機(jī)或智能電話;移動計算設(shè)備,諸如平板計算機(jī),如ipad?、Galaxy Tab?、Kindle Fire?等等;包括由英特爾公司制造的低功率芯片組的超極本? ;上網(wǎng)本計算機(jī)、筆記本計算機(jī)、膝上計算機(jī)等等。系統(tǒng)100的示例還可通常包括靜態(tài)設(shè)備,諸如例如具有集成或分離顯示器等等的臺式計算機(jī)。
[0028]系統(tǒng)100可包括例如主平臺102、子系統(tǒng)104以及網(wǎng)絡(luò)接口電路(NIC) 106。主平臺102可包括用于系統(tǒng)100的更多實(shí)質(zhì)信息處理資源。例如,主平臺102可被配置成用于策劃在系統(tǒng)100的正常操作過程中可發(fā)生的功能。子系統(tǒng)104可包括系統(tǒng)100中的電路,該電路被配置成用于例如在系統(tǒng)100中提供其它功能性,諸如視頻輸入/輸出、音頻輸入/輸出、用戶接口等等。NIC 106可包括可被配置成用于支持系統(tǒng)100以及駐留在各種有線或無線網(wǎng)絡(luò)108上的其他設(shè)備之間的交互性的物理層通信資源。
[0029]主平臺102可包括例如處理電路110、處理支持電路112以及存儲器電路114。處理電路110可包括位于分離的組件中的一個或多個處理器,或者可替代地,可在單個組件中(例如,在片上系統(tǒng)(SOC)配置中)包括一個或多個處理核。示例處理器可包括可從英特爾公司獲得的各種基于X86的微處理器,包括奔騰、至強(qiáng)、安騰、賽揚(yáng)、凌動、i系列內(nèi)核產(chǎn)品族中的那些處理器。處理電路110可被配置成用于使用處理支持電路112與系統(tǒng)100中的其他電路通信。處理支持電路112可包括用于支持處理電路110的包括例如存儲器控制器、圖形控制器、總線控制器等等的核邏輯芯片組。處理電路110可通過處理支持電路112與系統(tǒng)100中的其他電路(諸如子系統(tǒng)104和NIC 106)交互。盡管處理支持電路112可被實(shí)現(xiàn)為芯片組,該芯片組包括兩個或多個分離的集成電路(1C),諸如例如英特爾公司制造的南橋和北橋芯片組,還可在處理電路110中發(fā)現(xiàn)通常被包括在處理支持電路112中的某些或全部功能性。
[0030]處理電路110可被配置成用于執(zhí)行指令。指令包括程序代碼,當(dāng)被執(zhí)行時,該程序代碼致使處理電路108執(zhí)行功能,諸如例如讀取(訪問)數(shù)據(jù)、寫入(存儲)數(shù)據(jù)、處理數(shù)據(jù)、制定數(shù)據(jù)、產(chǎn)生數(shù)據(jù)、轉(zhuǎn)換數(shù)據(jù)、變換數(shù)據(jù)等等。信息(例如,指令、數(shù)據(jù)等等)可被存儲在存儲器電路114中。存儲器電路114可包括固定或可移除格式的隨機(jī)存取存儲器(RAM)和/或只讀存儲器(ROM)。RAM可包括被配置成用于在系統(tǒng)100的操作期間保持信息的存儲器,諸如例如靜態(tài)RAM (SRAM)或動態(tài)RAM(DRAM)。ROM (諸如例如b1s存儲器)可被配置成用于當(dāng)系統(tǒng)100激活時提供指令。ROM的其他示例包括可編程存儲器,諸如電子可編程ROM、(EPROM)、閃存等等。固定和/或可移除存儲器的其他實(shí)施例可包括:磁存儲器,諸如軟盤、硬盤驅(qū)動器等等;電子存儲器,諸如固態(tài)閃存(例如,eMMC等等)、可移除存儲器卡或棒(例如,uSD、USB等等);光學(xué)存儲器,諸如基于致密盤的ROM(⑶-ROM)、全息存儲器等等。
[0031]在一個實(shí)施例中,至少一個應(yīng)用116可被配置成用于在系統(tǒng)100的存儲器電路114中執(zhí)行。例如,應(yīng)用116可以是系統(tǒng)100的操作系統(tǒng)的一部分(例如,服務(wù))、可由系統(tǒng)100自動地執(zhí)行、可由系統(tǒng)100的用戶執(zhí)行等等。應(yīng)用116可被配置成用于支持系統(tǒng)100的操作、提供用戶所希望的功能性(例如,通信、娛樂、生產(chǎn)力、導(dǎo)航等等)、為外部信息客戶(例如,網(wǎng)絡(luò)108上的設(shè)備)提供信息等等。在執(zhí)行過程中,應(yīng)用116可要求存儲器電路114中的空間以便存儲信息(例如,應(yīng)用緩沖器118)。例如,在應(yīng)用116被配置成用于與在網(wǎng)絡(luò)108上駐留的設(shè)備交互的情況下,應(yīng)用緩沖器118可存儲將通過NIC 106被傳輸?shù)骄W(wǎng)絡(luò)108上的信息或者可替代地通過NIC 106從網(wǎng)絡(luò)108接收的信息。NIC緩沖器120可被配置成用于從系統(tǒng)100 (例如,從應(yīng)用118)接收和存儲信息用于在網(wǎng)絡(luò)108上傳輸或者從網(wǎng)絡(luò)108接收信息用于系統(tǒng)100中的消費(fèi)者(例如,應(yīng)用118)。
[0032]在RDMA 122之前,主平臺處理資源(例如,處理電路110和/或處理支持電路112)將被要求將信息從緩沖器120傳輸?shù)骄彌_器118(例如,用于由應(yīng)用116使用)并且將信息從緩沖器118傳輸?shù)骄彌_器120(例如,用于傳輸?shù)骄W(wǎng)絡(luò)108)。以此方式傳輸信息允許在緩沖器118和120之間傳遞信息但是可受到系統(tǒng)限制。例如,處理電路110和/或處理支持電路112可變得忙于處理系統(tǒng)100中的其他任務(wù),并且因此,緩沖器118和120之間的信息傳輸可被延遲,這可進(jìn)而導(dǎo)致應(yīng)用116的執(zhí)行延遲并且可不利地影響系統(tǒng)100的性能。RDMA122通過直接在緩沖器118和120之間傳遞信息而不涉及主平臺處理資源來幫助減輕這種情況。然而,現(xiàn)有的RDMA協(xié)議還遇到某些限制。主平臺處理資源可不可預(yù)測地將物理存儲器的內(nèi)容移動到虛擬存儲器(例如,模擬物理存儲器以便降低系統(tǒng)100所需的物理存儲器量的永久存儲),從而釋放資源用于系統(tǒng)100中的其他活動。在信息傳輸過程中將應(yīng)用緩沖器118的內(nèi)容移動到虛擬存儲器將導(dǎo)致不正確的信息被傳輸并且因此傳輸被損壞。為了防止應(yīng)用緩沖器118的內(nèi)容被移動,在現(xiàn)有的RDMA協(xié)議可傳輸信息之前,應(yīng)用緩沖器118必須首先注冊。在傳輸完成之后,緩沖器必須然后解除注冊,以便再次使得應(yīng)用緩沖器118使用的存儲器可用于動態(tài)重新分配。這種要求可不施加到NIC緩沖器120,因?yàn)槠淇深A(yù)先注冊(例如,可從系統(tǒng)100激活時永久地注冊到NIC 106)。注冊和解除注冊由系統(tǒng)100的主平臺處理資源策劃,由于處理電路110和/或處理支持電路112忙于系統(tǒng)100中的其他活動,其再次使RDMA事務(wù)受到潛在延遲。
[0033]在一個實(shí)施例中,可通過使用一個或多個中間緩沖器124來增強(qiáng)RDMA 122的操作。例如,可在注冊和解除注冊過程中將信息直接從“源”緩沖器(例如,應(yīng)用緩沖器118)直接傳輸?shù)街虚g緩沖器124,消除了這些操作導(dǎo)致的某些或全部延遲。以此方式,源緩沖器通常將空閑以等待注冊完成的時間可用于傳輸信息,并且在源緩沖器已注冊時要傳輸?shù)男畔⒘拷档?。圖2示出根據(jù)本公開的至少一個實(shí)施例的使用具有降低的延遲的RDMA的示例信息傳輸。在圖2的示例中,源緩沖器200嘗試向目標(biāo)緩沖器202傳輸信息。源緩沖器200(例如,應(yīng)用緩沖器118)未預(yù)先注冊,并且因此必須注冊以便在存儲器電路114中維持其內(nèi)容的完整性達(dá)到持續(xù)傳輸時長。目標(biāo)緩沖器202 (例如,NIC緩沖器120)預(yù)先注冊。源緩沖器200的注冊在204開始。同時或隨后,源緩沖器200可被配置成用于開始將信息復(fù)制到中間緩沖器(例如,注冊緩沖器124A),如在206所示。注冊緩沖器124A可以是被配置成用于從源緩沖器200接收信息并且向目標(biāo)緩沖器202傳輸信息的預(yù)先注冊的緩沖器。注冊緩沖器可具有設(shè)置大小,諸如例如16Kb,或可具有可變大小,可基于例如其注冊源緩沖器200所花費(fèi)的時間在操作過程中確定該可變大小。例如,如果主平臺102忙于其他任務(wù),則注冊可能花費(fèi)更長時間,并且結(jié)果是,注冊緩沖器124A的大小可增大從而從源緩沖器200接收更多信息。注冊緩沖器124A的大小無需等于將在注冊過程中傳輸?shù)目傂畔⒘?,因?yàn)樵谝粋€實(shí)施例中,注冊緩沖器124A可被配置成用于恒定地將其所接收到的信息傳輸出去,并且因此,永遠(yuǎn)不存在其保留在注冊過程中傳輸?shù)娜啃畔⒌那闆r。
[0034]源緩沖器200可被配置成用于繼續(xù)向注冊緩沖器124A傳輸信息,直至到達(dá)某個閾值。例如,信息可被傳輸?shù)阶跃彌_器124A,直至基于要傳輸?shù)男畔⒘康竭_(dá)偏移量、直至達(dá)到某個存儲器地址、當(dāng)注冊繼續(xù)時等等。在一個實(shí)施例中,注冊緩沖器124A可被配置成用于將從源緩沖器接收到的信息直接通過RDMA寫入目標(biāo)緩沖器208。例如,注冊緩沖器124A可向目標(biāo)緩沖器202發(fā)布一個或多個RDMA_post_write命令,從而致使將從源緩沖器200接收的信息直接傳輸?shù)侥繕?biāo)緩沖器202。在圖3中詳細(xì)描述了源緩沖器200可向注冊緩沖器124A傳輸信息并且注冊緩沖器124A可向目標(biāo)緩沖器202傳輸信息的示例方法。
[0035]注冊可在210完成,并且同時或隨后,源緩沖器200可被配置成用于致使將信息直接從源緩沖器200傳輸?shù)侥繕?biāo)緩沖器200,如在212所示。例如,源緩沖器200可向目標(biāo)緩沖器202發(fā)布RDMA寫命令,從而致使將信息從現(xiàn)在注冊的源緩沖器200直接傳輸?shù)侥繕?biāo)緩沖器202。在相同或不同實(shí)施例中,同時或隨后RDMA寫命令212被發(fā)布,源緩沖器200還可被配置成用于從源緩沖器200的底部附近開始將信息復(fù)制到另一個中間緩沖器(例如,解除注冊緩沖器124B),如在214所示。傳輸?shù)浇獬跃彌_器124B的信息的開始地址和信息量可基于例如可基于源緩沖器200完成解除注冊將花費(fèi)的預(yù)測時間而確定的大小或偏移量。在216,在212開始的信息傳輸可完成,并且解除注冊可開始。解除注冊緩沖器124B然后可被配置成用于將其從源緩沖器200接收的信息傳輸?shù)侥繕?biāo)緩沖器202,如在218所示。例如,解除注冊緩沖器124A可向目標(biāo)緩沖器202發(fā)布一個或多個RDMA_post_write命令,從而致使直接將從源緩沖器200接收的信息傳輸?shù)侥繕?biāo)緩沖器202。在圖4中詳細(xì)描述了源緩沖器200可向注冊緩沖器124B傳輸信息并且解除注冊緩沖器124B可向目標(biāo)緩沖器202傳輸信息的不例方法。
[0036]圖3示出根據(jù)本公開的至少一個實(shí)施例在具有降低的延遲的RDMA過程中的注冊的示例。注冊在204開始(例如,“IR”)。在300公開了示例開始命令。該命令可被認(rèn)為是“異步的”,因?yàn)槠洳恍枰趥鬏斝畔⒅鞍l(fā)生。該命令可以是包括將注冊的存儲器的開始地址和長度的RDMA寄存器存儲器命令。例如,將注冊的存儲器的開始可以是緩沖器的開始加上注冊偏移量大小。注冊偏移量大小可指示在注冊過程中將被寫入注冊緩沖器124A的數(shù)據(jù)量。將注冊的存儲器的長度可以是從其減去注冊偏移大小以及(如果傳輸將在解除注冊過程中發(fā)生)解除注冊偏移量大小的源緩沖器200的大小。例如,將注冊的信息量可以是圖2中的虛線210和216之間的源緩沖器200中的信息。注冊偏移量大小可被經(jīng)驗(yàn)為主地確定,如206A-D中所示。在206A,可將預(yù)定的初始塊大小從源緩沖器200復(fù)制到注冊緩沖器124A。當(dāng)塊傳輸在206B完成時,該塊可被傳輸出注冊緩沖器124A,如在208A所示。當(dāng)傳輸?shù)阶跃彌_器124A的信息量低于最大偏移量或者當(dāng)注冊未完成時,信息塊可繼續(xù)被復(fù)制到注冊緩沖器124A。在一個實(shí)施例中,所傳輸?shù)拿總€信息塊(例如,206C、206D等等)的大小可增加(例如,翻倍),并且一旦接收完成可被傳輸出注冊緩沖器124A(例如,208B、208C等等)。描述這些操作的實(shí)施例的示例偽代碼如下:
[0037]
size = Initial—Size
while (offset < registrat1n—offset) or (注冊未 Vii成){
copy (registrat1n_buffer + offset, source_buffer + offset, size)
[0038]
【權(quán)利要求】
1.一種系統(tǒng),包括: 存儲器電路,包括: 目標(biāo)緩沖器,被配置成用于至少接收信息; 中間緩沖器,被配置成用于接收和傳輸信息;以及 源緩沖器,被配置成用于致使在所述源緩沖器的注冊過程中向中間緩沖器傳輸信息以及致使在注冊完成之后直接向所述目標(biāo)緩沖器傳輸附加信息。
2.如權(quán)利要求1所述的系統(tǒng),其中,所述源緩沖器被配置成用于致使使用遠(yuǎn)程數(shù)據(jù)存儲器訪問(RDMA)來傳輸信息。
3.如權(quán)利要求1所述的系統(tǒng),其中,被配置成用于致使向所述中間緩沖器傳輸信息包括:所述源緩沖器被進(jìn)一步配置成用于,在所復(fù)制的所述信息量中的至少一個小于注冊偏移量或當(dāng)所述源緩沖器的所述注冊未完成時,致使將信息塊復(fù)制到注冊緩沖器。
4.如權(quán)利要求3所述的系統(tǒng),其中,每個信息塊的大小增加。
5.如權(quán)利要求3所述的系統(tǒng),其中,所述注冊緩沖器被配置成用于致使將從所述源緩沖器接收的所述信息塊傳輸?shù)剿瞿繕?biāo)緩沖器。
6.如權(quán)利要求3所述的系統(tǒng),其中,致使直接將附加信息傳輸?shù)剿瞿繕?biāo)緩沖器包括:所述源緩沖器被進(jìn)一步配置成用于致使直接將所述附加信息傳輸?shù)剿瞿繕?biāo)緩沖器,所述傳輸在基于所述注冊偏移量的所述源緩沖器中的地址處開始。
7.如權(quán)利要求1所述的系統(tǒng),其中,所述源緩沖器被進(jìn)一步配置成用于致使,在所述源緩沖器解除注冊之前,將至少基于解除注冊偏移量的存儲器地址處開始的信息傳輸至中間緩沖器。
8.如權(quán)利要求7所述的系統(tǒng),其中,致使在解除注冊之前將信息傳輸?shù)剿鲋虚g緩沖器包括:所述源緩沖器被進(jìn)一步配置成用于致使在所述將所述附加信息傳輸?shù)剿瞿繕?biāo)緩沖器的過程中將信息復(fù)制到解除注冊緩沖器。
9.如權(quán)利要求7所述的系統(tǒng),其中,所述解除注冊緩沖器被配置成用于致使在所述源緩沖器的解除注冊過程中將從所述源緩沖器接收的所述信息傳輸?shù)剿瞿繕?biāo)緩沖器。
10.如權(quán)利要求7所述的系統(tǒng),其中,致使直接將所述附加信息傳輸?shù)剿瞿繕?biāo)緩沖器包括:所述源緩沖器被進(jìn)一步配置成用于直接將所述附加信息傳輸?shù)剿瞿繕?biāo)緩沖器,所述傳輸在基于至少所述解除注冊偏移量的存儲器地址處結(jié)束。
11.一種方法,包括: 確定要從源緩沖器傳輸?shù)侥繕?biāo)緩沖器的信息; 致使在所述源緩沖器的注冊過程中將信息從所述源緩沖器傳輸?shù)街虚g緩沖器;以及 致使在注冊完成之后將附加信息直接從所述源緩沖器傳輸?shù)剿瞿繕?biāo)緩沖器。
12.如權(quán)利要求11所述的方法,其中,所述信息是通過遠(yuǎn)程直接存儲器訪問(RDMA)傳輸?shù)摹?br>
13.如權(quán)利要求11所述的方法,其中,致使將信息從所述源緩沖器傳輸?shù)街虚g緩沖器包括:在所傳輸?shù)乃鲂畔⒘恐械闹辽僖粋€小于注冊偏移量或當(dāng)所述源緩沖器的所述注冊未完成時,致使將信息成塊地復(fù)制到注冊緩沖器。
14.如權(quán)利要求13所述的方法,其中,每個信息塊的大小增加。
15.如權(quán)利要求13所述的方法,進(jìn)一步包括致使將在所述注冊緩沖器中接收的所述信息塊傳輸?shù)剿瞿繕?biāo)緩沖器。
16.如權(quán)利要求13所述的方法,其中,致使直接將附加信息傳輸?shù)剿瞿繕?biāo)緩沖器包括:致使直接將所述附加信息傳輸?shù)剿瞿繕?biāo)緩沖器,所述傳輸在基于所述注冊偏移量的所述源緩沖器中的地址處開始。
17.如權(quán)利要求11所述的方法,進(jìn)一步包括:在所述源緩沖器解除注冊之前,將基于至少解除注冊偏移量的存儲器地址處開始的信息傳輸至所述中間緩沖器。
18.如權(quán)利要求17所述的方法,其中,致使在解除注冊之前將信息傳輸?shù)剿鲋虚g緩沖器電路包括致使:在所述將所述附加信息傳輸?shù)剿瞿繕?biāo)緩沖器過程中,將信息復(fù)制到解除注冊緩沖器。
19.如權(quán)利要求17所述的方法,進(jìn)一步包括致使:在所述源緩沖器的解除注冊過程中,將在所述解除注冊緩沖器中接收的所述信息傳輸?shù)剿瞿繕?biāo)緩沖器。
20.如權(quán)利要求17所述的方法,其中,直接將所述附加信息傳輸?shù)剿瞿繕?biāo)緩沖器包括:致使直接將在基于至少所述解除注冊偏移量的存儲器地址處結(jié)束的所述附加信息傳輸?shù)剿瞿繕?biāo)緩沖器。
21.一種被配置成用于執(zhí)行遠(yuǎn)程直接存儲器訪問的設(shè)備,所述設(shè)備被安排成用于執(zhí)行權(quán)利要求11至20中任一項所述的方法。
22.一種芯片組,被安排成用于執(zhí)行權(quán)利要求11至20中任一項所述的方法。
23.至少一種機(jī)器可讀介質(zhì),包括多個指令,響應(yīng)于在計算設(shè)備上被執(zhí)行,所述指令致使所述計算設(shè)備執(zhí)行根據(jù)權(quán)利要求11至20中任一項所述的方法。
24.一種用于具有降低的延遲的遠(yuǎn)程直接存儲器訪問的裝置,所述裝置被安排成用于執(zhí)行權(quán)利要求11至20中任一項所述的方法。
【文檔編號】G06F13/14GK104205078SQ201280071890
【公開日】2014年12月10日 申請日期:2012年4月10日 優(yōu)先權(quán)日:2012年4月10日
【發(fā)明者】M·S·赫弗蒂 申請人:英特爾公司