本發(fā)明涉及fc網(wǎng)絡(luò)通信,具體而言涉及一種基于fc設(shè)備的srio多通道通信方法與系統(tǒng)。
背景技術(shù):
1、當前,通信系統(tǒng)對高性能、多通道、低延遲的需求持續(xù)增長,serial?rapid?io(srio)和fibre?channel(fc)通信協(xié)議分別在不同的領(lǐng)域扮演重要角色。
2、srio通信協(xié)議是一種高性能的串行總線協(xié)議,旨在實現(xiàn)多個處理器、dsp(數(shù)字信號處理器)、fpga(現(xiàn)場可編程門陣列)等設(shè)備之間的快速、可靠的數(shù)據(jù)通信。srio協(xié)議支持多通道通信,每個通道的帶寬可達到10gbps以上,滿足高速數(shù)據(jù)傳輸?shù)男枨螅S糜诟咝阅苡嬎愫颓度胧较到y(tǒng)。而fc通信協(xié)議則廣泛應(yīng)用于存儲網(wǎng)絡(luò)、數(shù)據(jù)中心和高性能存儲,具備通道和網(wǎng)絡(luò)雙重優(yōu)勢,并具有高帶寬、高可靠性、高穩(wěn)定性以及抵抗電磁干擾等能力,采用光纖媒介作為主要連接設(shè)備,以滿足長距離傳輸和免受電磁干擾的需求。
3、傳統(tǒng)協(xié)議的轉(zhuǎn)換方法通常需要專用硬件或多個處理單元,這增加了系統(tǒng)復(fù)雜性和成本,以fc協(xié)議與srio協(xié)議之間的轉(zhuǎn)換為例,依賴于專用硬件的協(xié)議轉(zhuǎn)換系統(tǒng)通常難以維護和升級,當需要添加新的協(xié)議支持或改進現(xiàn)有協(xié)議的性能時,需要升級和更換整個硬件單元。同時,多個處理單元用于協(xié)議轉(zhuǎn)換可能導(dǎo)致資源浪費。不同的處理單元可能在不同的時間點被激活,導(dǎo)致整體系統(tǒng)資源的利用率不均衡,進而影響系統(tǒng)的性能和效率。盡管通過硬件轉(zhuǎn)換的方式(例如專用硬件轉(zhuǎn)換設(shè)備或者轉(zhuǎn)換芯片)能夠直接處理fc和srio協(xié)議之間的數(shù)據(jù)格式和信號轉(zhuǎn)換,實現(xiàn)高性能和低延遲的轉(zhuǎn)換,但同時存在上述維護升級不利以及資源利用的缺陷,同時涉及到涉及復(fù)雜的硬件設(shè)計和實現(xiàn)。
技術(shù)實現(xiàn)思路
1、鑒于現(xiàn)有技術(shù)存在的缺陷與不足,根據(jù)本發(fā)明目的的第一方面,提出一種基于fc設(shè)備的srio多通道通信系統(tǒng),包括:
2、srio_ip核,用于接收srio幀數(shù)據(jù)輸入,轉(zhuǎn)換成axis接口數(shù)據(jù)輸出;
3、srio_ctrl控制模塊,用于srio協(xié)議幀與axis接口數(shù)據(jù)之間的轉(zhuǎn)換控制,包括對axis接口數(shù)據(jù)解析并基于不同fc類型的數(shù)據(jù)進行數(shù)據(jù)幀組幀,以及基于接收fc數(shù)據(jù)包的解析結(jié)果進行數(shù)據(jù)切分與組包后,轉(zhuǎn)換成axis接口數(shù)據(jù)送出至srio_ip核;
4、仲裁模塊,包括發(fā)送仲裁模塊和接收仲裁模塊,分別用于發(fā)送方向與接收方向的請求仲裁;
5、flow_ctrl發(fā)送/接收控制模塊,用于組幀后數(shù)據(jù)幀的發(fā)送控制,以及接收到的fc數(shù)據(jù)包的解析與緩沖;
6、其中,所述srio_ctrl控制模塊包括作為發(fā)送側(cè)模塊的t端口、作為接收側(cè)的i端口、排序模塊以及組幀模塊;所述flow_ctrl發(fā)送/接收控制模塊包括多個對應(yīng)于不同fc類型的發(fā)送模塊;
7、在數(shù)據(jù)發(fā)送方向,所述t端口用于解析axis接口數(shù)據(jù)輸出數(shù)據(jù)并提取srio幀數(shù)據(jù)的幀頭信息作為描述符,所述描述符包括tid、類型、地址和數(shù)據(jù)長度;
8、所述排序模塊用于根據(jù)描述符進行地址與通道的映射,并根據(jù)不同的通道下的tid字段排序,將解析得到的數(shù)據(jù)送入指定的ram中緩存,并判斷協(xié)議幀的fc類型、將fc類型加入到描述符中;
9、組幀模塊,用于通過預(yù)讀取描述符中的fc類型將數(shù)據(jù)分別依據(jù)fc類型對應(yīng)的協(xié)議幀格式進行組幀,組幀后的數(shù)據(jù)被送入到仲裁模塊中,由所述發(fā)送仲裁模塊進行仲裁后,從fc類型對應(yīng)的發(fā)送模塊發(fā)送出去;
10、在數(shù)據(jù)接收方向,所述flow_ctrl發(fā)送/接收控制模塊接收來自fc交換網(wǎng)絡(luò)的fc數(shù)據(jù)包,解析后獲得數(shù)據(jù)和描述符;
11、所述接收仲裁模塊進行接收模塊的仲裁后,由所述組幀模塊預(yù)讀取解析得到的描述符,依據(jù)通道與地址的關(guān)系查找到地址,并依據(jù)數(shù)據(jù)的長度將數(shù)據(jù)進行切分和組包,獲得對應(yīng)srio幀頭的多個數(shù)據(jù)包,最后通過i端口轉(zhuǎn)換獲得符合axis協(xié)議的數(shù)據(jù)幀,送出至srio_ip核;
12、其中,所述srio_ip核、srio_ctrl控制模塊、仲裁模塊以及flow_ctrl發(fā)送/接收控制模塊均被配置在fc設(shè)備的fpga內(nèi)部。
13、作為可選的實施方式,所述排序模塊被設(shè)置成基于地址與通道號的映射關(guān)系獲得通道號,由此確定每一幀數(shù)據(jù)對應(yīng)的一個通道號。其中的映射關(guān)系被通過藍圖配置,fc設(shè)備的fpga上電后讀取藍圖flash信息進行配置。
14、作為可選的實施方式,所述排序模塊被設(shè)置成按照以下方式進行排序與數(shù)據(jù)緩存:
15、定義tid表示srio?hello幀中每對源id/目標id中未完成事務(wù)的描述字段,依據(jù)該字段對hello幀進行排序,tid∈[0,255];
16、設(shè)置3個指針,分別為p_wr、p_rd、p_rd_next,其中p_wr是寫指針,p_rd是讀指針,p_rd_next是預(yù)讀指針;
17、以tid作為數(shù)據(jù)ram地址,hello幀payload作為數(shù)據(jù)ram的內(nèi)容,依次存儲在數(shù)據(jù)ram中;
18、以tid作為標記ram的地址,1或者0作為標記ram的內(nèi)容,初始為標記為0,當收到tid對應(yīng)的hello幀時,對應(yīng)內(nèi)容標記為1,數(shù)據(jù)被發(fā)送到下級時,將該tid對應(yīng)的內(nèi)容標記清零;
19、其中,當判斷到p_rd、p_rd_next指向的位置的對應(yīng)標記內(nèi)容均為1的時候,將p_rd位置上的數(shù)據(jù)ram內(nèi)容發(fā)往下級,p_rd、p_rd_next均加1,同時清除標記內(nèi)容;
20、當p_rd對應(yīng)的標記內(nèi)容為1,p_rd_next對應(yīng)的標記內(nèi)容為0,則停止發(fā)送,直至寫指針p_wr即將追上p_rd,將p_rd位置上的殘余數(shù)據(jù)內(nèi)容發(fā)往下級,然后p_rd、p_rd_next指針同時加2,越過長時間未收到數(shù)據(jù)的指針位置;在越過之后,繼續(xù)按照之前的流程判斷數(shù)據(jù)接收情況,完成循環(huán)排序操作。
21、作為可選的實施方式,所述排序模塊完成數(shù)據(jù)的排序后,被按照不同的通道送入到flow_ctrl發(fā)送/接收控制模塊的payload?fifo中進行緩存,其中:
22、所述組幀模塊中的fc?asm組幀模塊與fc?818組幀模塊分別預(yù)讀取payload?fifo中的描述符,以判斷緩存的數(shù)據(jù)對應(yīng)是fc?asm協(xié)議數(shù)據(jù)、fc?818協(xié)議數(shù)據(jù)或者兩路均發(fā)送的數(shù)據(jù);
23、組幀模塊讀取數(shù)據(jù)后,fc?asm組幀模塊與fc?818組幀模塊依據(jù)各自的協(xié)議幀格式進行組幀,組幀完成后送入發(fā)送仲裁模塊中進行仲裁,數(shù)據(jù)完成仲裁后,分別通過對應(yīng)的發(fā)送模塊發(fā)送出去;
24、其中,所有通道下的fc?asm協(xié)議幀一起仲裁,所有通道下的fc?818協(xié)議幀一起仲裁。
25、根據(jù)本發(fā)明目的的第二方面,還提出一種基于fc設(shè)備的srio多通道通信方法,包括以下步驟:
26、在數(shù)據(jù)發(fā)送方向,srio_ip核接收到srio幀數(shù)據(jù)輸入后,轉(zhuǎn)換成axis接口數(shù)據(jù)輸出;
27、t端口解析axis接口數(shù)據(jù)輸出數(shù)據(jù),提取srio幀數(shù)據(jù)的幀頭信息作為描述符,所述描述符包括tid、類型、地址和數(shù)據(jù)長度;
28、排序模塊根據(jù)描述符進行地址與通道的映射,并根據(jù)不同的通道下的tid字段排序,將解析得到的數(shù)據(jù)送入指定的ram中緩存,并判斷協(xié)議幀的fc類型、將fc類型加入到描述符中;
29、組幀模塊中的fc?asm組幀模塊與fc?818組幀模塊分別預(yù)讀取描述符,判斷緩存的數(shù)據(jù)對應(yīng)是fc?asm協(xié)議數(shù)據(jù)、fc?818協(xié)議數(shù)據(jù)或者兩路均發(fā)送的數(shù)據(jù);然后由fc?asm組幀模塊與fc?818組幀模塊依據(jù)各自的協(xié)議幀格式進行組幀,組幀完成后送入發(fā)送仲裁模塊中進行仲裁,數(shù)據(jù)完成仲裁后,分別通過對應(yīng)的發(fā)送模塊發(fā)送出去;其中,所有通道下的fcasm協(xié)議幀一起仲裁,所有通道下的fc?818協(xié)議幀一起仲裁;
30、在數(shù)據(jù)接收方向,flow_ctrl發(fā)送/接收控制模塊中基于fc?asm協(xié)議的第一發(fā)送模塊以及基于fc?818協(xié)議的第二發(fā)送模塊接收來自fc交換網(wǎng)絡(luò)的fc數(shù)據(jù)包,解析后獲得數(shù)據(jù)和描述符;
31、接收仲裁模塊進行接收模塊的仲裁后,由所述組幀模塊預(yù)讀取解析得到的描述符,依據(jù)通道與地址的關(guān)系查找到地址,并依據(jù)數(shù)據(jù)的長度將數(shù)據(jù)進行切分和組包,獲得對應(yīng)srio幀頭的多個數(shù)據(jù)包,最后通過i端口轉(zhuǎn)換獲得符合axis協(xié)議的數(shù)據(jù)幀,送出至srio_ip核。
32、作為可選的實施方式,所述排序模塊基于地址與通道號的映射關(guān)系獲得通道號,由此確定每一幀數(shù)據(jù)對應(yīng)的一個通道號,其中的映射關(guān)系被通過藍圖配置,fc設(shè)備的fpga上電后讀取藍圖flash信息進行配置。
33、作為可選的實施方式,所述排序模塊被設(shè)置成按照以下方式進行排序與數(shù)據(jù)緩存:
34、定義tid表示srio?hello幀中每對源id/目標id中未完成事務(wù)的描述字段,依據(jù)該字段對hello幀進行排序,tid∈[0,255];
35、設(shè)置3個指針,分別為p_wr、p_rd、p_rd_next,其中p_wr是寫指針,p_rd是讀指針,p_rd_next是預(yù)讀指針;
36、以tid作為數(shù)據(jù)ram地址,hello幀payload作為數(shù)據(jù)ram的內(nèi)容,依次存儲在數(shù)據(jù)ram中;
37、以tid作為標記ram的地址,1或者0作為標記ram的內(nèi)容,初始為標記為0,當收到tid對應(yīng)的hello幀時,對應(yīng)內(nèi)容標記為1,數(shù)據(jù)被發(fā)送到下級時,將該tid對應(yīng)的內(nèi)容標記清零;
38、其中,當判斷到p_rd、p_rd_next指向的位置的對應(yīng)標記內(nèi)容均為1的時候,將p_rd位置上的數(shù)據(jù)ram內(nèi)容發(fā)往下級,p_rd、p_rd_next均加1,同時清除標記內(nèi)容;
39、當p_rd對應(yīng)的標記內(nèi)容為1,p_rd_next對應(yīng)的標記內(nèi)容為0,則停止發(fā)送,直至寫指針p_wr即將追上p_rd,將p_rd位置上的殘余數(shù)據(jù)內(nèi)容發(fā)往下級,然后p_rd、p_rd_next指針同時加2,越過長時間未收到數(shù)據(jù)的指針位置;在越過之后,繼續(xù)按照之前的流程判斷數(shù)據(jù)接收情況,完成循環(huán)排序操作。
40、結(jié)合以上實施例的基于fc設(shè)備的srio多通道通信方法與系統(tǒng),本發(fā)明旨在利用fpga為協(xié)議轉(zhuǎn)換提供的可編程和并行處理數(shù)據(jù)的優(yōu)越平臺,提供一種基于fc設(shè)備的srio多通道通信方法與系統(tǒng),基于fc設(shè)備的srio多通道的通信,借助fpga技術(shù)實現(xiàn)高效的協(xié)議轉(zhuǎn)換。本發(fā)明提出的基于fc設(shè)備的srio多通道通信方法與系統(tǒng)中,通過多通道排序的應(yīng)用,進一步優(yōu)化通信效率,提供更高性能和低延遲的通信解決方案,適用于各種高性能的通訊系統(tǒng),滿足日益增長的數(shù)據(jù)交換與通訊需求。
41、應(yīng)當理解,前述構(gòu)思以及在下面更加詳細地描述的額外構(gòu)思的所有組合只要在這樣的構(gòu)思不相互矛盾的情況下都可以被視為本公開的發(fā)明主題的一部分。另外,所要求保護的主題的所有組合都被視為本公開的發(fā)明主題的一部分。
42、結(jié)合附圖從下面的描述中可以更加全面地理解本發(fā)明教導(dǎo)的前述和其他方面、實施例和特征。本發(fā)明的其他附加方面例如示例性實施方式的特征和/或有益效果將在下面的描述中顯見,或通過根據(jù)本發(fā)明教導(dǎo)的具體實施方式的實踐中得知。