專利名稱:并行系統(tǒng)間數(shù)據(jù)傳輸方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)及通信領(lǐng)域,特別涉及并行系統(tǒng)間數(shù)據(jù)傳輸技術(shù)。
背景技術(shù):
在申請?zhí)枮?2110763. 7的中國專利中,公開了一種基于多處理機(jī)的虛擬網(wǎng)卡系統(tǒng)及其通信方法,通過一個(gè)網(wǎng)卡、主處理機(jī)、處理機(jī)之間的通信裝置以及多個(gè)其它處理機(jī)構(gòu)建成整個(gè)虛擬網(wǎng)卡系統(tǒng);外部數(shù)據(jù)包通過網(wǎng)卡、網(wǎng)卡驅(qū)動(dòng)模塊、主處理機(jī)的通信驅(qū)動(dòng)模塊,并按照數(shù)據(jù)包的目的地址分發(fā)到目的處理機(jī);各處理機(jī)的網(wǎng)絡(luò)協(xié)議棧將上層應(yīng)用部分的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)包通過通信驅(qū)動(dòng)模塊、處理機(jī)之間的通信裝置、主處理機(jī)的通信驅(qū)動(dòng)模塊、網(wǎng)卡驅(qū)動(dòng)模塊以及網(wǎng)卡向外部發(fā)送。本發(fā)明的發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)主要存在以下方面的問題I、現(xiàn)有技術(shù)中,使用PCI總線進(jìn)行數(shù)據(jù)的交互,PCI總線傳輸時(shí)使用并行總線方式,并行傳輸易受到外部干擾,且需要與其它從端系統(tǒng)共享帶寬,網(wǎng)絡(luò)傳輸?shù)乃俣仁芟蕖?、現(xiàn)有技術(shù)中,主端系統(tǒng)收到數(shù)據(jù)后會根據(jù)目的地址將數(shù)據(jù)轉(zhuǎn)發(fā)至從端系統(tǒng),從端系統(tǒng)也可以將數(shù)據(jù)傳輸給主端系統(tǒng)。但是,數(shù)據(jù)只能在主端系統(tǒng)和從端系統(tǒng)之間傳輸,從端系統(tǒng)之間無法自由傳輸數(shù)據(jù)。3、現(xiàn)有技術(shù)中,實(shí)現(xiàn)與外部通信時(shí),需要將網(wǎng)卡設(shè)置成混雜模式,當(dāng)網(wǎng)絡(luò)中數(shù)據(jù)包過多時(shí),會對主端系統(tǒng)的性能造成影響,特別是在資源緊張的系統(tǒng)中。4、現(xiàn)有技術(shù)中,使用主端系統(tǒng)維護(hù)整個(gè)系統(tǒng)的的網(wǎng)絡(luò)配置信息,可以明顯看出主端系統(tǒng)的重要性,若主端系統(tǒng)運(yùn)行過程中當(dāng)機(jī),那么其它從端系統(tǒng)將無法進(jìn)行通信。5、現(xiàn)有技術(shù)中,需要將從端系統(tǒng)的MAC通過主端網(wǎng)卡暴露至外網(wǎng),可能引起地址沖突問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種并行系統(tǒng)間數(shù)據(jù)傳輸方法及其系統(tǒng),可以在多個(gè)并行系統(tǒng)中建立起一個(gè)底層的網(wǎng)絡(luò),實(shí)現(xiàn)各系統(tǒng)之間自由的數(shù)據(jù)傳輸。為解決上述技術(shù)問題,本發(fā)明的實(shí)施方式公開了一種并行系統(tǒng)間數(shù)據(jù)傳輸方法,N個(gè)并行的系統(tǒng),各系統(tǒng)之間以PCIe總線連接,N為大于I的整數(shù);每個(gè)系統(tǒng)中至少包括N-I個(gè)緩沖區(qū)描述符和N-I個(gè)接收緩沖區(qū),分別對應(yīng)其它的N-I個(gè)系統(tǒng);方法包括以下步驟第一系統(tǒng)將數(shù)據(jù)通過PCIe總線傳輸?shù)降诙到y(tǒng)中對應(yīng)于第一系統(tǒng)的接收緩沖區(qū);其中第一系統(tǒng)和第二系統(tǒng)是N個(gè)并行的系統(tǒng)中任意的兩個(gè)系統(tǒng);第一系統(tǒng)將表示有新到數(shù)據(jù)的信息寫入第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符;第二系統(tǒng)根據(jù)對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符中的信息,從對應(yīng)于第一系統(tǒng)的接、收緩沖區(qū)中讀取數(shù)據(jù)。本發(fā)明的實(shí)施方式還公開了一種并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng),包括N個(gè)并行的系統(tǒng),各系統(tǒng)之間以PCIe總線連接,N為大于I的整數(shù);每個(gè)系統(tǒng)中至少包括N-I個(gè)緩沖區(qū)描述符和N-I個(gè)接收緩沖區(qū),分別對應(yīng)其它的N-I個(gè)系統(tǒng);每個(gè)系統(tǒng)中包括數(shù)據(jù)發(fā)送單元,用于將數(shù)據(jù)通過PCIe總線傳輸?shù)浇邮辗较到y(tǒng)中對應(yīng)于本系統(tǒng)的接收緩沖區(qū);緩沖區(qū)寫入單元,用于將表示有新到數(shù)據(jù)的信息寫入接收方系統(tǒng)中對應(yīng)于本系統(tǒng)的緩沖區(qū)描述符;數(shù)據(jù)讀取單元,用于根據(jù)對應(yīng)于發(fā)送方系統(tǒng)的緩沖區(qū)描述中的信息,從對應(yīng)于發(fā)送方系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù)。本發(fā)明實(shí)施方式與現(xiàn)有技術(shù)相比,主要區(qū)別及其效果在于通過PCIe總線連接多個(gè)并行系統(tǒng),每個(gè)系統(tǒng)為各其它系統(tǒng)分別建一個(gè)緩沖區(qū)描述符和接收緩沖區(qū),將數(shù)據(jù)傳到接收系統(tǒng)中相應(yīng)的接收緩沖區(qū),并設(shè)置緩沖區(qū)描述符中的信息,等接收系統(tǒng)讀取,可以在多個(gè)并行系統(tǒng)中建立起一個(gè)底層的網(wǎng)絡(luò),實(shí)現(xiàn)各系統(tǒng)之間自由的數(shù)據(jù)傳輸。在上層(如應(yīng)用層)看來,上述底層結(jié)構(gòu)等同于一個(gè)虛擬網(wǎng)卡,上層無需考慮各并行系統(tǒng)之間如何通信,只要象使用一個(gè)虛擬網(wǎng)卡一樣,將數(shù)據(jù)通過這個(gè)虛擬網(wǎng)卡發(fā)送和接收即可,簡單好用。進(jìn)一步地,在發(fā)送系統(tǒng)(第一系統(tǒng))的發(fā)送描述符和接收系統(tǒng)(第二系統(tǒng))的接收描述符中設(shè)置對應(yīng)的讀位置和寫位置,由發(fā)送系統(tǒng)通過PCIe總線更新接收系統(tǒng)中的寫位置,由接收系統(tǒng)通過PCIe總線更新發(fā)送系統(tǒng)中的讀位置,而不是將描述符中的讀位置和寫位置全由本地系統(tǒng)更新,可以進(jìn)一步縮短數(shù)據(jù)傳輸流程所需要時(shí)間。因?yàn)楸景l(fā)明的發(fā)明人在實(shí)踐中發(fā)現(xiàn),PCIe總線的寫是POST (提交)型操作,而讀是N0NP0ST (非提交)型操作,相對而言寫操作要明顯快于讀操作,所以通過設(shè)置兩對讀、寫位置,由對端寫本端讀,而不是直接去對端讀,可以明顯節(jié)約操作時(shí)間。進(jìn)一步地,在各系統(tǒng)中保留N個(gè)全局的中斷號,分別對應(yīng)N個(gè)系統(tǒng),發(fā)送系統(tǒng)以中斷方式通知接收系統(tǒng),接收系統(tǒng)以中斷號確定發(fā)送系統(tǒng),可以高效地實(shí)現(xiàn)數(shù)據(jù)傳輸后的通知。進(jìn)一步地,使用MSI中斷通知對端系統(tǒng)接收數(shù)據(jù),可以支持較多數(shù)量的并行系統(tǒng)。
圖I是本發(fā)明第一實(shí)施方式中一種并行系統(tǒng)間數(shù)據(jù)傳輸方法的流程示意圖;圖2是本發(fā)明第一實(shí)施方式中一種并行系統(tǒng)的結(jié)構(gòu)示意圖;圖3是本發(fā)明第一實(shí)施方式中一種并行系統(tǒng)的共享緩沖區(qū)的結(jié)構(gòu)示意圖;圖4是本發(fā)明第二實(shí)施方式中一種并行系統(tǒng)間數(shù)據(jù)傳輸方法的流程示意圖;圖5是本發(fā)明第二實(shí)施方式中一種發(fā)送-緩沖區(qū)-接收的示意圖;圖6是本發(fā)明第二實(shí)施方式中一種環(huán)形緩沖區(qū)的工作方式示意圖;圖7是本發(fā)明第二實(shí)施方式中一種并行系統(tǒng)中兩個(gè)系統(tǒng)間數(shù)據(jù)的收發(fā)過程圖;圖8是本發(fā)明第二實(shí)施方式中一種虛擬網(wǎng)卡初始化的流程示意圖;、
圖9是本發(fā)明第二實(shí)施方式中一種數(shù)據(jù)發(fā)送過程的流程示意圖;圖10是本發(fā)明第二實(shí)施方式中一種數(shù)據(jù)接收過程的流程示意圖;圖11是本發(fā)明第三實(shí)施方式中一種并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式在以下的敘述中,為了使讀者更好地理解本申請而提出了許多技術(shù)細(xì)節(jié)。但是,本領(lǐng)域的普通技術(shù)人員可以理解,即使沒有這些技術(shù)細(xì)節(jié)和基于以下各實(shí)施方式的種種變化和修改,也可以實(shí)現(xiàn)本申請各權(quán)利要求所要求保護(hù)的技術(shù)方案。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明的實(shí)施方式作進(jìn)一步地詳細(xì)描述。本發(fā)明第一實(shí)施方式涉及一種并行系統(tǒng)間數(shù)據(jù)傳輸方法。圖I是該并行系統(tǒng)間數(shù)據(jù)傳輸方法的流程示意圖。該并行系統(tǒng)間數(shù)據(jù)傳輸方法適用于N個(gè)并行的系統(tǒng),各系統(tǒng)之間以PCIe總線連接,N為大于I的整數(shù)。并行系統(tǒng)指多個(gè)在同一時(shí)刻運(yùn)行著的操作系統(tǒng)。圖2是一種并行系統(tǒng)的結(jié)構(gòu)示意圖。如圖2所示的并行系統(tǒng)中,共存著4個(gè)并行運(yùn)行著的操作系統(tǒng),類似的更多的系統(tǒng)可以通過PCIe橋進(jìn)行擴(kuò)展得到,實(shí)現(xiàn)過程均相同。PCIe總線全稱為PCI Express,是新一代的總線接口,最初由英特爾開發(fā)。支持點(diǎn)對點(diǎn)串行鏈接,每個(gè)系統(tǒng)均有自己的專用鏈接,不需要向總線請求帶寬,可以把傳輸率提高到很高的頻率。在N個(gè)并行的系統(tǒng)啟動(dòng)時(shí),包括以下步驟N個(gè)并行的系統(tǒng)中的一個(gè)作為主系統(tǒng),其它系統(tǒng)作從系統(tǒng),主系統(tǒng)通過PCIe總線完成對從系統(tǒng)的引導(dǎo)啟動(dòng),在引導(dǎo)啟動(dòng)過程中由王系統(tǒng)建立起的PCIe映射關(guān)系保持不變。如圖2所示,成功啟動(dòng)的系統(tǒng)中,在根聯(lián)合體(Root Complex,簡稱“RC”)和三個(gè)終端(End Point,簡稱“EP”)上同時(shí)運(yùn)行著不同的操作系統(tǒng)。啟動(dòng)時(shí),主系統(tǒng)通過PCIe總線來完成對從系統(tǒng)的引導(dǎo)(該技術(shù)正在本公司專利申請審查中)啟動(dòng),當(dāng)主系統(tǒng)與從系統(tǒng)完全運(yùn)行起來時(shí),就形成了圖2中并行運(yùn)行著的4個(gè)操作系統(tǒng)。在引導(dǎo)啟動(dòng)過程中由王系統(tǒng)建立起的PCIe映射關(guān)系保持不變,即各個(gè)被引導(dǎo)啟動(dòng)的系統(tǒng)在PCIe總線域的地址保持不變。在本申請中,使用PCIe總線進(jìn)行數(shù)據(jù)交互,PCIe總線有很多優(yōu)點(diǎn)。首先,PCIe總線使整個(gè)系統(tǒng)內(nèi)部的從系統(tǒng)可以直接相互通信連接,而不需要主系統(tǒng)的參與,也就是說使用PCIe總線可實(shí)現(xiàn)內(nèi)部點(diǎn)對點(diǎn)的通信連接。其次,PCIe采用串行總線方式,PCIe點(diǎn)對點(diǎn)連接各自占有帶寬。再者,PCIe的帶寬較高,實(shí)現(xiàn)網(wǎng)絡(luò)傳輸?shù)乃俣瓤梢赃_(dá)到345Mbps,此時(shí)帶寬受限于處理器的性能。在本申請中,各個(gè)從系統(tǒng)擁有自己的網(wǎng)絡(luò)系統(tǒng),可獨(dú)立配置,如果主系統(tǒng)運(yùn)行過程中當(dāng)機(jī),對其它從系統(tǒng)的通信無影響。而且,不需要將從系統(tǒng)的MAC通過主端網(wǎng)卡暴露至外網(wǎng),不會造成可能引起的地、址沖突問題。每個(gè)系統(tǒng)中至少包括N-I個(gè)緩沖區(qū)描述符和N-I個(gè)接收緩沖區(qū),分別對應(yīng)其它的N-I個(gè)系統(tǒng)。
系統(tǒng)啟動(dòng)完成后,建立共享緩沖區(qū)系統(tǒng)。共享緩沖區(qū)系統(tǒng)為一片連續(xù)內(nèi)存,其中包括兩部分內(nèi)容第一部分為緩沖區(qū)描述符,主要用來描述數(shù)據(jù)接收、發(fā)送緩沖區(qū)的位置及目前的狀態(tài);第二部分為接收緩沖區(qū),主要用來存儲由其它系統(tǒng)發(fā)來的網(wǎng)絡(luò)數(shù)據(jù)包。在每個(gè)系統(tǒng)中為各其它系統(tǒng)分別建立一個(gè)緩沖區(qū)描述符和一個(gè)接收緩沖區(qū)以存放數(shù)據(jù),理論上對于并行運(yùn)行著的N個(gè)操作系統(tǒng)中,只需要分配N-I個(gè)緩沖區(qū)描述符和N-I個(gè)接收緩沖區(qū)。在本實(shí)施方式中,為了統(tǒng)一編程,會分配N個(gè)緩沖區(qū)描述符和N個(gè)接收緩沖區(qū),只不過對第n個(gè)系統(tǒng),第n緩沖區(qū)描述符和第n接收緩沖區(qū)并未使用,這里的n是大于等于I,且小于等于N的整數(shù),所有系統(tǒng)編號和緩沖區(qū)編號均從I開始。圖3是圖2所示的并行系統(tǒng)的共享緩沖區(qū)結(jié)構(gòu)示意圖。如圖3中所示,緩沖區(qū)開始是指所有系統(tǒng)上緩沖區(qū)開始的位置,對應(yīng)著真實(shí)物理內(nèi)存,且為本地設(shè)備內(nèi)存。緩沖區(qū)描述符這里儲存著兩種描述符,接收描述符和發(fā)送描述符。接收描述符指明了接收緩沖區(qū)的物理地址及狀態(tài);發(fā)送緩沖區(qū)描述符指明了發(fā)送緩沖區(qū)的物理地址及狀態(tài),發(fā)送緩沖區(qū)的物理地址位于PCIe地址空間,而非本地內(nèi)存。每個(gè)系統(tǒng)在各其它系統(tǒng)上均會被分配一個(gè)這種數(shù)據(jù)結(jié)構(gòu),以實(shí)現(xiàn)數(shù)據(jù)的接收及發(fā)送。假定編號為I的系統(tǒng)與2號系統(tǒng)通信,那么,在系統(tǒng)I及系統(tǒng)2上均會被對方分配一個(gè)這種描述符,通過這種描述符就可以實(shí)現(xiàn)數(shù)據(jù)的接收及發(fā)送。接收緩沖區(qū)此區(qū)域主要用來實(shí)現(xiàn)數(shù)據(jù)的接收,在本實(shí)施方式中所有數(shù)據(jù)均直接發(fā)送至接收緩沖區(qū)中,發(fā)送緩沖區(qū)地址即為相應(yīng)的接收緩沖區(qū);優(yōu)選地,本實(shí)施方式中,緩沖區(qū)的管理使用環(huán)形緩沖區(qū)模式。一個(gè)緩沖區(qū)對應(yīng)著兩個(gè)緩沖區(qū)描述符,一個(gè)在本地,主要用來描述接收狀態(tài),另一個(gè)位于遠(yuǎn)程(PCIe空間),主要用來描述發(fā)送狀態(tài)。緩沖區(qū)中每個(gè)單元大小定義為1536Bytes,本實(shí)施方式中暫時(shí)定義其總大小為96KB,其總大小可以根據(jù)實(shí)際需要確定。具體地說,如圖I所示,該并行系統(tǒng)間數(shù)據(jù)傳輸方法包括以下步驟在步驟101中,第一系統(tǒng)將數(shù)據(jù)通過PCIe總線傳輸?shù)降诙到y(tǒng)中對應(yīng)于第一系統(tǒng)的接收緩沖區(qū)。其中第一系統(tǒng)和第二系統(tǒng)是N個(gè)并行的系統(tǒng)中任意的兩個(gè)系統(tǒng)。此后進(jìn)入步驟102,第一系統(tǒng)將表示有新到數(shù)據(jù)的信息寫入第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符。此后進(jìn)入步驟103,第二系統(tǒng)根據(jù)對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符中的信息,從對應(yīng)于第一系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù)。此后結(jié)束本流程。通過PCIe總線連接多個(gè)并行系統(tǒng),每個(gè)系統(tǒng)為各其它系統(tǒng)分別建一個(gè)緩沖區(qū)描述符和接收緩沖區(qū),將數(shù)據(jù)傳到接收系統(tǒng)中相應(yīng)的接收緩沖區(qū),并設(shè)置緩沖區(qū)描述符中的信息,等接收系統(tǒng)讀取,可以在多個(gè)并行系統(tǒng)中建立起一個(gè)底層的網(wǎng)絡(luò),實(shí)現(xiàn)各系統(tǒng)之間自由的數(shù)據(jù)傳輸。在上層(如應(yīng)用層)看來,上述底層結(jié)構(gòu)等同于一個(gè)虛擬網(wǎng)卡,上層無需考慮各并行系統(tǒng)之間如何通信,只要象使用一個(gè)虛擬網(wǎng)卡一樣,將數(shù)據(jù)通過這個(gè)虛擬網(wǎng)卡發(fā)送和接收即可,簡單好用。本發(fā)明第二實(shí)施方式涉及一種并行系統(tǒng)間數(shù)據(jù)傳輸方法。圖4是該并行系統(tǒng)間數(shù)、據(jù)傳輸方法的流程示意圖。第二實(shí)施方式在第一實(shí)施方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于每個(gè)緩沖區(qū)描述符中包括接收描述符和發(fā)送描述符,接收描述符和發(fā)送描述符中均包括寫位置和讀位置。第一系統(tǒng)將表不有新到數(shù)據(jù)的信息寫入第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符的步驟包括以下子步驟第一系統(tǒng)修改第一系統(tǒng)中對應(yīng)于第二系統(tǒng)的發(fā)送描述符的寫位置的值。第一系統(tǒng)通過PCIe總線修改第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的接收描述符的寫位置的值。第二系統(tǒng)根據(jù)對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符中的信息,從對應(yīng)于第一系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù)的步驟包括以下子步驟第二系統(tǒng)判斷第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的接收描述符的寫位置與讀位置是否相同,如果不同,則到對應(yīng)于第一系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù)。第二系統(tǒng)修改第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的接收描述符的讀位置的值。第二系統(tǒng)通過PCIe總線修改第一系統(tǒng)中對應(yīng)于第二系統(tǒng)的發(fā)送描述符的讀位置的值。此外,可以理解,第一系統(tǒng)中對應(yīng)于第二系統(tǒng)的發(fā)送描述符中讀位置和寫位置應(yīng)當(dāng)對應(yīng)相等于第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的接收描述符中讀位置和寫位置。具體地說,如圖4所示,在步驟401中,第一系統(tǒng)將數(shù)據(jù)通過PCIe總線傳輸?shù)降诙到y(tǒng)中對應(yīng)于第一系統(tǒng)的接收緩沖區(qū)。此步驟即為第一實(shí)施方式中的步驟101。此后進(jìn)入步驟402,第一系統(tǒng)修改第一系統(tǒng)中對應(yīng)于第二系統(tǒng)的發(fā)送描述符的寫位置的值。此后進(jìn)入步驟403,第一系統(tǒng)通過PCIe總線修改第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的接收描述符的寫位置的值。此后進(jìn)入步驟404,第二系統(tǒng)判斷第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的接收描述符的寫位置與讀位置是否相同。若是,則結(jié)束本流程;若否,則進(jìn)入步驟405。在步驟405中,第二系統(tǒng)到對應(yīng)于第一系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù)。此后進(jìn)入步驟406,第二系統(tǒng)修改第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的接收描述符的讀位置的值。此后進(jìn)入步驟407,第二系統(tǒng)通過PCIe總線修改第一系統(tǒng)中對應(yīng)于第二系統(tǒng)的發(fā)送描述符的讀位置的值。此后再次回到步驟404。、
在本實(shí)施方式中,優(yōu)選地,緩沖區(qū)的管理方式為環(huán)形緩沖區(qū)模式,且由發(fā)送者和寫入者共同管理,發(fā)送者向緩沖區(qū)寫入數(shù)據(jù),并修改緩沖區(qū)管理中的兩個(gè)寫位置,一個(gè)位于發(fā)送者上,一個(gè)位于接收者上;接收者從中取出數(shù)據(jù),并修改緩沖區(qū)管理中的兩個(gè)讀位置,一個(gè)位于接收者上,一個(gè)位于發(fā)送者上。圖5是一種發(fā)送-緩沖區(qū)-接收的示意圖。
緩沖區(qū)是一個(gè)先進(jìn)先出隊(duì)列。發(fā)送者將信息寫入緩沖區(qū);接收者將信息從緩沖區(qū)中取走。發(fā)送者與接收者需要進(jìn)行信息的協(xié)調(diào)和同步,這是通過上面的修改兩個(gè)緩沖區(qū)管理中的讀或?qū)懳恢猛瓿傻?。圖6是一種環(huán)形緩沖區(qū)的工作方式示意圖。在發(fā)送系統(tǒng)(第一系統(tǒng))的發(fā)送描述符和接收系統(tǒng)(第二系統(tǒng))的接收描述符中設(shè)置對應(yīng)的讀位置和寫位置,由發(fā)送系統(tǒng)通過PCIe總線更新接收系統(tǒng)中的寫位置,由接收系統(tǒng)通過PCIe總線更新發(fā)送系統(tǒng)中的讀位置,而不是將描述符中的讀位置和寫位置全由本地系統(tǒng)更新,可以進(jìn)一步縮 短數(shù)據(jù)傳輸流程所需要時(shí)間。因?yàn)楸景l(fā)明的發(fā)明人在實(shí)踐中發(fā)現(xiàn),PCIe總線的寫是POST (提交)型操作,而讀是N0NP0ST (非提交)型操作,相對而言寫操作要明顯快于讀操作,所以通過設(shè)置兩對讀、寫位置,由對端寫本端讀,而不是直接去對端讀,可以明顯節(jié)約操作時(shí)間。在N個(gè)并行的系統(tǒng)中保留N個(gè)全局的中斷號,分別對應(yīng)N個(gè)系統(tǒng)。第一系統(tǒng)將表不有新到數(shù)據(jù)的信息寫入第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符的步驟之后還包括以下步驟第一系統(tǒng)觸發(fā)對應(yīng)于第一系統(tǒng)的中斷號給第二系統(tǒng)。第二系統(tǒng)接收到中斷后,根據(jù)該中斷的中斷號確定觸發(fā)該中斷的系統(tǒng)為第一系統(tǒng)。在各系統(tǒng)中保留N個(gè)全局的中斷號,分別對應(yīng)N個(gè)系統(tǒng),發(fā)送的系統(tǒng)以中斷方式通知接收的系統(tǒng),接收的系統(tǒng)以中斷號確定發(fā)送的系統(tǒng),可以高效地實(shí)現(xiàn)數(shù)據(jù)傳輸后的通知。此外,可以理解,在本發(fā)明的其它某些實(shí)例中,也可以不使用中斷的方式來通知,例如可以使用接收方輪詢的方式。也可以不為每個(gè)系統(tǒng)分配全局的中斷號,而是采用其它方式,例如,可以只用一個(gè)中斷號,接收到中斷的系統(tǒng)通過查詢某個(gè)標(biāo)志知道是哪一個(gè)系統(tǒng)觸發(fā)中斷的。在本實(shí)施方式中,優(yōu)選地,中斷是MSI中斷。使用MSI中斷通知對端系統(tǒng)接收數(shù)據(jù),可以支持較多數(shù)量的并行系統(tǒng)。此外,可以理解,在本發(fā)明的其它某些實(shí)例中,原則上也可以使用其它類型的中斷,如PCI中斷、GPIO中斷等。緩沖區(qū)建立完成后,進(jìn)行數(shù)據(jù)發(fā)送時(shí),需要通知目標(biāo)接收數(shù)據(jù)。在本實(shí)施方式中,使用中斷告知目標(biāo)進(jìn)行數(shù)據(jù)的接收。為了方便管理,我們在整個(gè)并行系統(tǒng)中統(tǒng)一中斷號的使用。如假定I號系統(tǒng)為136號中斷,2號系統(tǒng)為137號中斷……依此類推。那么I號系統(tǒng)向2號系統(tǒng)和3號系統(tǒng)發(fā)送數(shù)據(jù)時(shí),只需要出發(fā)自己在整個(gè)系統(tǒng)中分配的中斷號136給2號系統(tǒng)和3號系統(tǒng)即可。接著2號系統(tǒng)和3號系統(tǒng)接收到136號中斷,然后根據(jù)此中斷號對應(yīng)的系統(tǒng),處理相應(yīng)的接收緩沖區(qū)即可。圖7是圖2所示的并行系統(tǒng)中2號和3號系統(tǒng)間數(shù)據(jù)的收發(fā)過程圖。如圖7所示,帶箭頭虛線均為指針,指向真實(shí)數(shù)據(jù)位置,假定2號系統(tǒng)向3號系統(tǒng)進(jìn)行數(shù)據(jù)的發(fā)送。2號系統(tǒng)收到協(xié)議棧發(fā)來的數(shù)據(jù)包,在驅(qū)動(dòng)層分析數(shù)據(jù)包的目的地址,發(fā)現(xiàn)目的地址為3號系統(tǒng)。從而從共享緩沖區(qū)中取出3號系統(tǒng)的描述符,通過發(fā)送緩沖區(qū)的狀態(tài)判斷緩沖區(qū)是否存在剩余空間。若存在可用的剩余空間,則找到其發(fā)送緩沖區(qū)指針及空間位置,將數(shù)據(jù)拷貝至指針指定地址。在本地修改2號系統(tǒng)在3號系統(tǒng)中的接收描述符的寫位置《,將其值修改為2號系統(tǒng)向3號系統(tǒng)發(fā)送描述符的寫位置W,此步通過rw_off指針完成。寫位置W是一個(gè)數(shù)值,如果緩沖區(qū)中多了一個(gè)包,就+1,寫位置W與讀位置r相同,就說明沒有數(shù)據(jù),不同就說明有數(shù)據(jù)。然后通過2號系統(tǒng)占用的系統(tǒng)中斷,如137號,向3號系統(tǒng)發(fā)出中斷信號。若不存在剩余空間,則停止數(shù)據(jù)的發(fā)送。至此,2號系統(tǒng)向3號系統(tǒng)發(fā)送數(shù)據(jù)的整個(gè)過程已經(jīng)結(jié)束。其它系統(tǒng)間的數(shù)據(jù)發(fā)送過程,均與此過程相似?,F(xiàn)在3號系統(tǒng)被2號系統(tǒng)觸發(fā)了 137號中斷,那么3號系統(tǒng)會知道此時(shí)2號系統(tǒng)已經(jīng)發(fā)來數(shù)據(jù)。3號系統(tǒng)會從自己的共享緩沖區(qū)描述符中取出2號系統(tǒng)的接收描述符,然后通過讀寫位置確認(rèn)是否真正有數(shù)據(jù)到達(dá),若確認(rèn)有數(shù)據(jù)到達(dá)則處理數(shù)據(jù)包,根據(jù)接收描述符中的緩沖區(qū)位置,接收數(shù)據(jù),并提交給內(nèi)核的協(xié)議棧,然后在本地修改3號系統(tǒng)在2號系統(tǒng)中的發(fā)送描述符的讀位置r,將其值修改為3號系統(tǒng)接收2號系統(tǒng)的接收描述符的讀位置r,此步通過rw_0fT指針完成,若無數(shù)據(jù)到達(dá),則直接返回。至此,整個(gè)3號系統(tǒng)接收2號系統(tǒng)發(fā)來數(shù)據(jù)的過程已經(jīng)完成。綜上,整個(gè)并行系統(tǒng)間數(shù)據(jù)傳輸包括三個(gè)過程虛擬網(wǎng)卡初始化過程、數(shù)據(jù)發(fā)送過程和數(shù)據(jù)接收過程。圖8是一種虛擬網(wǎng)卡初始化的流程示意圖。虛擬網(wǎng)卡是指借助軟件來模擬硬件網(wǎng)卡的功能,從而實(shí)現(xiàn)幾個(gè)操作系統(tǒng)之間借助網(wǎng)絡(luò)進(jìn)行通信的技術(shù)。通過PCIe總線連接多個(gè)并行系統(tǒng),可以在多個(gè)并行系統(tǒng)中建立起一個(gè)底層的網(wǎng)絡(luò),實(shí)現(xiàn)各系統(tǒng)之間自由的數(shù)據(jù)傳輸。在上層(如應(yīng)用層)看來,上述底層結(jié)構(gòu)等同于一個(gè)虛擬網(wǎng)卡,上層無需考慮各并行系統(tǒng)之間如何通信,只要象使用一個(gè)虛擬網(wǎng)卡一樣,將數(shù)據(jù)通過這個(gè)虛擬網(wǎng)卡發(fā)送和接收即可,簡單好用。具體的說,如圖8所示,該虛擬網(wǎng)卡初始化的過程包括以下步驟,在步驟801中,注冊網(wǎng)絡(luò)設(shè)備及其操作函數(shù)集,包括打開、關(guān)閉設(shè)備,包發(fā)送函數(shù)托等,注冊NAPI函數(shù),獲取本地設(shè)備在系統(tǒng)中的編號。此后進(jìn)入步驟802,分配緩沖區(qū)描述符,分配接收緩沖區(qū)數(shù)據(jù)。此后進(jìn)入步驟803,分配系統(tǒng)中斷資源號,為每個(gè)在并行系統(tǒng)中的操作系統(tǒng)分配中斷資源。此后進(jìn)入步驟804,注冊中斷處理函數(shù)。此后結(jié)束本流程。圖9是一種數(shù)據(jù)發(fā)送過程的流程示意圖。具體地說,主要包括以下步驟在步驟901中,協(xié)議棧傳來發(fā)送數(shù)據(jù)。此后進(jìn)入步驟902,提取其中的目的地址。此后進(jìn)入步驟903,判斷該目的地址是否可轉(zhuǎn)發(fā)。若是,則進(jìn)入步驟904 ;若否,則進(jìn)入步驟907。在步驟904中,根據(jù)目的地址,從緩沖區(qū)描述符中提取發(fā)送緩沖區(qū)狀態(tài)。此后進(jìn)入步驟905,根據(jù)發(fā)送緩沖區(qū)狀態(tài),判斷發(fā)送緩沖區(qū)是否已滿。若是,則進(jìn)入步驟908 ;若否,則進(jìn)入步驟906。
、
在步驟906中,找到發(fā)送緩沖區(qū)指針及空間位置,將數(shù)據(jù)拷貝至指針指定地址。此后結(jié)束本流程。在步驟907中,直接丟棄。此后結(jié)束本流程。
在步驟908中,等待發(fā)送或超時(shí)處理。此后結(jié)束本流程。圖10是一種數(shù)據(jù)接收過程的流程示意圖。具體地說,主要包括以下步驟在步驟1001中,進(jìn)入中斷。 此后進(jìn)入步驟1002,關(guān)閉中斷,防止類似中斷再次進(jìn)入,記錄中斷狀態(tài),喚醒網(wǎng)絡(luò)接收軟中斷。此后進(jìn)入步驟1003,執(zhí)行注冊的NAPI函數(shù)。此后進(jìn)入步驟1004,根據(jù)中斷狀態(tài)獲取相應(yīng)的接收緩沖區(qū)描述符,處理其執(zhí)行的接收緩沖區(qū)。此后進(jìn)入步驟1005,將接收緩沖區(qū)內(nèi)容填充至網(wǎng)絡(luò)數(shù)據(jù)包,然后提交至協(xié)議棧。此后進(jìn)入步驟1006,更新統(tǒng)計(jì)狀態(tài),處理接收緩沖區(qū)的數(shù)據(jù)達(dá)一定條件后退出NAPI函數(shù),或完成后退出并清除中斷狀態(tài)。此后結(jié)束本流程。本發(fā)明的各方法實(shí)施方式均可以以軟件、硬件、固件等方式實(shí)現(xiàn)。不管本發(fā)明是以軟件、硬件、還是固件方式實(shí)現(xiàn),指令代碼都可以存儲在任何類型的計(jì)算機(jī)可訪問的存儲器中(例如永久的或者可修改的,易失性的或者非易失性的,固態(tài)的或者非固態(tài)的,固定的或者可更換的介質(zhì)等等)。同樣,存儲器可以例如是可編程陣列邏輯(Programmable ArrayLogic,簡稱“PAL”)、隨機(jī)存取存儲器(Random Access Memory,簡稱“RAM”)、可編程只讀存儲器(Programmable Read Only Memory,簡稱“PR0M”)、只讀存儲器(Read-Only Memory,簡稱“ROM”)、電可擦除可編程只讀存儲器(Electrically Erasable Programmable ROM,簡稱“EEPR0M”)、磁盤、光盤、數(shù)字通用光盤(Digital Versatile Disc,簡稱“DVD”)等等。本發(fā)明第三實(shí)施方式涉及一種并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng)。圖11是該并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)示意圖。具體地說,如圖11所示,該并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng)包括N個(gè)并行的系統(tǒng),各系統(tǒng)之間以PCIe總線連接,N為大于I的整數(shù)。每個(gè)系統(tǒng)中至少包括N-I個(gè)緩沖區(qū)描述符和N-I個(gè)接收緩沖區(qū),分別對應(yīng)其它的N-I個(gè)系統(tǒng);每個(gè)系統(tǒng)中包括數(shù)據(jù)發(fā)送單元,用于將數(shù)據(jù)通過PCIe總線傳輸?shù)浇邮辗较到y(tǒng)中對應(yīng)于本系統(tǒng)的接收緩沖區(qū);緩沖區(qū)寫入單元,用于將表示有新到數(shù)據(jù)的信息寫入接收方系統(tǒng)中對應(yīng)于本系統(tǒng)的緩沖區(qū)描述符;數(shù)據(jù)讀取單元,用于根據(jù)對應(yīng)于發(fā)送方系統(tǒng)的緩沖區(qū)描述中的信息,從對應(yīng)于發(fā)送方系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù)。在上層(如應(yīng)用層)看來,上述并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng)等同于一個(gè)虛擬網(wǎng)卡,上層無需考慮各并行系統(tǒng)之間如何通信,只要象使用一個(gè)虛擬網(wǎng)卡一樣,將數(shù)據(jù)通過這個(gè)虛擬網(wǎng)卡發(fā)送和接收即可,簡單好用。這里,需要說明的是,接收方系統(tǒng)是指本系統(tǒng)數(shù)據(jù)的發(fā)送對象,而發(fā)送方系統(tǒng)是指將數(shù)據(jù)發(fā)送給本系統(tǒng)的那個(gè)系統(tǒng)。
此外,所述N個(gè)并行的系統(tǒng)中,一個(gè)為主系統(tǒng),其它系統(tǒng)為從系統(tǒng);所述主系統(tǒng)用于在所述N個(gè)并行的系統(tǒng)啟動(dòng)時(shí)通過PCIe總線完成對從系統(tǒng)的引導(dǎo)啟動(dòng);在引導(dǎo)啟動(dòng)過程中由主系統(tǒng)建立起的PCIe映射關(guān)系保持不變。第一實(shí)施方式是與本實(shí)施方式相對應(yīng)的方法實(shí)施方式,本實(shí)施方式可與第一實(shí)施方式互相配合實(shí)施。第一實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第一實(shí)施方式中。本發(fā)明第四實(shí)施方式涉及一種并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng)。第四實(shí)施方式在第三實(shí)施方式的基礎(chǔ)上進(jìn)行了改進(jìn),主要改進(jìn)之處在于每個(gè)緩沖區(qū)描述符中包括接收描述符和發(fā)送描述符,接收描述符和發(fā)送描述符中均包括寫位置和讀位置。所述緩沖區(qū)寫入單元包括以下子單元寫位置第一修改子單元,用于修改本系統(tǒng)中對應(yīng)于接收方系統(tǒng)的發(fā)送描述符的寫位置的值;寫位置第二修改子單元,用于通過PCIe總線修改接收方系統(tǒng)中對應(yīng)于本系統(tǒng)的接收描述符的寫位置的值;所述數(shù)據(jù)讀取單元包括以下子單元判斷子單元,用于判斷本系統(tǒng)中對應(yīng)于發(fā)送方系統(tǒng)的接收描述符的寫位置與讀位置是否相同;讀取子單元,用于在所述判斷子單元判斷本系統(tǒng)中對應(yīng)于發(fā)送方系統(tǒng)的接收描述符的寫位置與讀位置不同時(shí),到對應(yīng)于發(fā)送方系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù);讀位置第一修改子單元,用于修改本系統(tǒng)中對應(yīng)于發(fā)送方系統(tǒng)的接收描述符的讀位置的值;讀位置第二修改子單元,用于通過PCIe總線修改發(fā)送方系統(tǒng)中對應(yīng)于本系統(tǒng)的發(fā)送描述符的讀位置的值。在N個(gè)并行的系統(tǒng)中保留N個(gè)全局的中斷號,分別對應(yīng)N個(gè)系統(tǒng)。每個(gè)系統(tǒng)中還包括觸發(fā)單元,用于觸發(fā)對應(yīng)于本系統(tǒng)的中斷號給接收方系統(tǒng);確定單元,用于在接收到中斷后,根據(jù)該中斷的中斷號確定觸發(fā)該中斷的發(fā)送方系統(tǒng)。在本實(shí)施方式中,優(yōu)選地,中斷是MSI中斷。使用MSI中斷通知對端系統(tǒng)接收數(shù)據(jù),可以支持較多數(shù)量的并行系統(tǒng)。此外,可以理解,在本發(fā)明的其它某些實(shí)例中,原則上也可以使用其它類型的中斷,如PCI中斷、GPIO中斷等。
、
第二實(shí)施方式是與本實(shí)施方式相對應(yīng)的方法實(shí)施方式,本實(shí)施方式可與第二實(shí)施方式互相配合實(shí)施。第二實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)在本實(shí)施方式中依然有效,為了減少重復(fù),這里不再贅述。相應(yīng)地,本實(shí)施方式中提到的相關(guān)技術(shù)細(xì)節(jié)也可應(yīng)用在第二實(shí)施方式中。
需要說明的是,本發(fā)明各系統(tǒng)實(shí)施方式中提到的各單元都是邏輯單元,在物理上,一個(gè)邏輯單元可以是一個(gè)物理單元,也可以是一個(gè)物理單元的一部分,還可以以多個(gè)物理單元的組合實(shí)現(xiàn),這些邏輯單元本身的物理實(shí)現(xiàn)方式并不是最重要的,這些邏輯單元所實(shí)現(xiàn)的功能的組合才是解決本發(fā)明所提出的技術(shù)問題的關(guān)鍵。此外,為了突出本發(fā)明的創(chuàng)新部分,本發(fā)明上述各系統(tǒng)實(shí)施方式 并沒有將與解決本發(fā)明所提出的技術(shù)問題關(guān)系不太密切的單元引入,這并不表明上述設(shè)備實(shí)施方式并不存在其它的單元。需要說明的是,在本專利的權(quán)利要求和說明書中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。雖然通過參照本發(fā)明的某些優(yōu)選實(shí)施方式,已經(jīng)對本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種并行系統(tǒng)間數(shù)據(jù)傳輸方法,其特征在于,N個(gè)并行的系統(tǒng),各系統(tǒng)之間以PCIe總線連接,N為大于I的整數(shù); 每個(gè)系統(tǒng)中至少包括N-I個(gè)緩沖區(qū)描述符和N-I個(gè)接收緩沖區(qū),分別對應(yīng)其它的N-I個(gè)系統(tǒng); 所述方法包括以下步驟 第一系統(tǒng)將數(shù)據(jù)通過PCIe總線傳輸?shù)降诙到y(tǒng)中對應(yīng)于第一系統(tǒng)的接收緩沖區(qū);其中所述第一系統(tǒng)和第二系統(tǒng)是所述N個(gè)并行的系統(tǒng)中任意的兩個(gè)系統(tǒng); 第一系統(tǒng)將表示有新到數(shù)據(jù)的信息寫入第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符; 第二系統(tǒng)根據(jù)對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符中的信息,從對應(yīng)于第一系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的并行系統(tǒng)間數(shù)據(jù)傳輸方法,其特征在于,每個(gè)緩沖區(qū)描述符中包括接收描述符和發(fā)送描述符,接收描述符和發(fā)送描述符中均包括寫位置和讀位置; 所述第一系統(tǒng)將表示有新到數(shù)據(jù)的信息寫入第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符的步驟包括以下子步驟 第一系統(tǒng)修改第一系統(tǒng)中對應(yīng)于第二系統(tǒng)的發(fā)送描述符的寫位置的值; 第一系統(tǒng)通過PCIe總線修改第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的接收描述符的寫位置的值; 所述第二系統(tǒng)根據(jù)對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符中的信息,從對應(yīng)于第一系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù)的步驟包括以下子步驟 第二系統(tǒng)判斷第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的接收描述符的寫位置與讀位置是否相同,如果不同,則到對應(yīng)于第一系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù); 第二系統(tǒng)修改第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的接收描述符的讀位置的值; 第二系統(tǒng)通過PCIe總線修改第一系統(tǒng)中對應(yīng)于第二系統(tǒng)的發(fā)送描述符的讀位置的值。
3.根據(jù)權(quán)利要求I或2所述的并行系統(tǒng)間數(shù)據(jù)傳輸方法,其特征在于,在所述N個(gè)并行的系統(tǒng)中保留N個(gè)全局的中斷號,分別對應(yīng)N個(gè)系統(tǒng); 所述第一系統(tǒng)將表示有新到數(shù)據(jù)的信息寫入第二系統(tǒng)中對應(yīng)于第一系統(tǒng)的緩沖區(qū)描述符的步驟之后還包括以下步驟 第一系統(tǒng)觸發(fā)對應(yīng)于第一系統(tǒng)的中斷號給第二系統(tǒng); 第二系統(tǒng)接收到中斷后,根據(jù)該中斷的中斷號確定觸發(fā)該中斷的系統(tǒng)為第一系統(tǒng)。
4.根據(jù)權(quán)利要求3所述的并行系統(tǒng)間數(shù)據(jù)傳輸方法,其特征在于,所述中斷是MSI中斷。
5.根據(jù)權(quán)利要求I所述的并行系統(tǒng)間數(shù)據(jù)傳輸方法,其特征在于,在所述N個(gè)并行的系統(tǒng)啟動(dòng)時(shí),還包括以下步驟 所述N個(gè)并行的系統(tǒng)中的一個(gè)作為主系統(tǒng),其它系統(tǒng)作從系統(tǒng),主系統(tǒng)通過PCIe總線完成對從系統(tǒng)的引導(dǎo)啟動(dòng),在引導(dǎo)啟動(dòng)過程中由王系統(tǒng)建立起的PCIe映射關(guān)系保持不變。
6.一種并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng),其特征在于,包括N個(gè)并行的系統(tǒng),各系統(tǒng)之間以PCIe總線連接,N為大于I的整數(shù);每個(gè)系統(tǒng)中至少包括N-I個(gè)緩沖區(qū)描述符和N-I個(gè)接收緩沖區(qū),分別對應(yīng)其它的N-I個(gè)系統(tǒng);每個(gè)系統(tǒng)中包括 數(shù)據(jù)發(fā)送單元,用于將數(shù)據(jù)通過PCIe總線傳輸?shù)浇邮辗较到y(tǒng)中對應(yīng)于本系統(tǒng)的接收緩沖區(qū); 緩沖區(qū)寫入單元,用于將表示有新到數(shù)據(jù)的信息寫入接收方系統(tǒng)中對應(yīng)于本系統(tǒng)的緩沖區(qū)描述符; 數(shù)據(jù)讀取單元,用于根據(jù)對應(yīng)于發(fā)送方系統(tǒng)的緩沖區(qū)描述中的信息,從對應(yīng)于發(fā)送方系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng),其特征在于,每個(gè)緩沖區(qū)描述符中包括接收描述符和發(fā)送描述符,接收描述符和發(fā)送描述符中均包括寫位置和讀位置; 所述緩沖區(qū)寫入單元包括以下子單元 寫位置第一修改子單元,用于修改本系統(tǒng)中對應(yīng)于接收方系統(tǒng)的發(fā)送描述符的寫位置的值; 寫位置第二修改子單元,用于通過PCIe總線修改接收方系統(tǒng)中對應(yīng)于本系統(tǒng)的接收描述符的寫位置的值; 所述數(shù)據(jù)讀取單元包括以下子單元 判斷子單元,用于判斷本系統(tǒng)中對應(yīng)于發(fā)送方系統(tǒng)的接收描述符的寫位置與讀位置是否相同; 讀取子單元,用于在所述判斷子單元判斷本系統(tǒng)中對應(yīng)于發(fā)送方系統(tǒng)的接收描述符的寫位置與讀位置不同時(shí),到對應(yīng)于發(fā)送方系統(tǒng)的接收緩沖區(qū)中讀取數(shù)據(jù); 讀位置第一修改子單元,用于修改本系統(tǒng)中對應(yīng)于發(fā)送方系統(tǒng)的接收描述符的讀位置的值; 讀位置第二修改子單元,用于通過PCIe總線修改發(fā)送方系統(tǒng)中對應(yīng)于本系統(tǒng)的發(fā)送描述符的讀位置的值。
8.根據(jù)權(quán)利要求6或7所述的并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng),其特征在于,在所述N個(gè)并行的系統(tǒng)中保留N個(gè)全局的中斷號,分別對應(yīng)N個(gè)系統(tǒng); 每個(gè)系統(tǒng)中還包括 觸發(fā)單元,用于觸發(fā)對應(yīng)于本系統(tǒng)的中斷號給接收方系統(tǒng); 確定單元,用于在接收到中斷后,根據(jù)該中斷的中斷號確定觸發(fā)該中斷的發(fā)送方系統(tǒng)。
9.根據(jù)權(quán)利要求8所述的并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng),其特征在于,所述中斷是MSI中斷。
10.根據(jù)權(quán)利要求6所述的并行系統(tǒng)間數(shù)據(jù)傳輸系統(tǒng),其特征在于, 所述N個(gè)并行的系統(tǒng)中,一個(gè)為主系統(tǒng),其它系統(tǒng)為從系統(tǒng); 所述主系統(tǒng)用于在所述N個(gè)并行的系統(tǒng)啟動(dòng)時(shí)通過PCIe總線完成對從系統(tǒng)的引導(dǎo)啟動(dòng); 在引導(dǎo)啟動(dòng)過程中由王系統(tǒng)建立起的PCIe映射關(guān)系保持不變。
全文摘要
本發(fā)明涉及計(jì)算機(jī)及通信領(lǐng)域,公開了一種并行系統(tǒng)間數(shù)據(jù)傳輸方法及其系統(tǒng)。本發(fā)明中,通過PCIe總線連接多個(gè)并行系統(tǒng),每個(gè)系統(tǒng)為各其它系統(tǒng)分別建一個(gè)緩沖區(qū)描述符和接收緩沖區(qū),將數(shù)據(jù)傳到接收系統(tǒng)中相應(yīng)的接收緩沖區(qū),并設(shè)置緩沖區(qū)描述符中的信息,等接收系統(tǒng)讀取,可以在多個(gè)并行系統(tǒng)中建立起一個(gè)底層的網(wǎng)絡(luò),實(shí)現(xiàn)各系統(tǒng)之間自由的數(shù)據(jù)傳輸。在發(fā)送系統(tǒng)的發(fā)送描述符和接收系統(tǒng)的接收描述符中設(shè)置對應(yīng)的讀位置和寫位置,由發(fā)送系統(tǒng)通過PCIe總線更新接收系統(tǒng)中的寫位置,由接收系統(tǒng)通過PCIe總線更新發(fā)送系統(tǒng)中的讀位置,而不是將描述符中的讀位置和寫位置全由本地系統(tǒng)更新,可以進(jìn)一步縮短數(shù)據(jù)傳輸流程所需要時(shí)間。
文檔編號H04L12/40GK102752223SQ20121026130
公開日2012年10月24日 申請日期2012年7月26日 優(yōu)先權(quán)日2012年7月26日
發(fā)明者曹洪坤, 杜皓 申請人:杭州海康威視數(shù)字技術(shù)股份有限公司