本申請(qǐng)涉及通信,特別是涉及一種擁塞控制狀態(tài)信息處理方法、裝置、芯片、網(wǎng)絡(luò)接口卡、計(jì)算機(jī)設(shè)備、存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
1、rdma(remote?direct?memory?access,遠(yuǎn)程直接內(nèi)存訪問)是一種高效的通信技術(shù),廣泛應(yīng)用于高性能計(jì)算和數(shù)據(jù)中心網(wǎng)絡(luò)。該技術(shù)使得服務(wù)器能夠直接訪問彼此的內(nèi)存,無需操作系統(tǒng)的介入,從而顯著提高數(shù)據(jù)處理速度和網(wǎng)絡(luò)效率。
2、qp(queue?pair,隊(duì)列對(duì))是rdma通信的基本單位,用于描述兩個(gè)節(jié)點(diǎn)之間的通信連接。每個(gè)qp都有一個(gè)sq(send?queue,發(fā)送隊(duì)列)和一個(gè)rq(receive?queue,接收隊(duì)列),分別用于發(fā)送和接收數(shù)據(jù)。通過qp,節(jié)點(diǎn)之間可以直接進(jìn)行rdma數(shù)據(jù)傳輸,而無需涉及操作系統(tǒng)的數(shù)據(jù)傳輸過程。一對(duì)qp也可稱為一條流。
3、擁塞控制算法在執(zhí)行上需要使用對(duì)應(yīng)qp的ccc(congestion?control?context,擁塞控制上下文狀態(tài)資源),根據(jù)新的事件請(qǐng)求對(duì)ccc進(jìn)行變更。具體來說,硬件在諸如調(diào)度報(bào)文發(fā)送需要請(qǐng)求令牌、完成發(fā)送報(bào)文、收到cnp(顯式擁塞通知包)等時(shí)刻可能向算法報(bào)告一個(gè)事件,算法根據(jù)事件類型運(yùn)行相應(yīng)擁塞控制邏輯,更新ccc,反饋令牌或速率等信息至硬件。
4、如同qpc(qp?context)那樣?,每一對(duì)qp的ccc也需要占用一定的空間,常見的為32b/48b/64b。硬件模塊在向算法上報(bào)事件時(shí),需要檢查本地緩存(cache)中是否已包含對(duì)應(yīng)qp的ccc。如果沒有,則需要首先查找ccc表項(xiàng)地址,從主機(jī)內(nèi)存(host?memory)中加載ccc到本地緩存。硬件模塊將本地緩存中的ccc發(fā)給算法執(zhí)行模塊作為輸入。算法執(zhí)行模塊根據(jù)事件類型運(yùn)行相應(yīng)擁塞控制邏輯,更新ccc后將其回寫到硬件緩存中。
5、當(dāng)存在多個(gè)活躍qp時(shí),會(huì)占用大量的硬件緩存資源,消耗大,成本高。
技術(shù)實(shí)現(xiàn)思路
1、基于此,有必要針對(duì)上述技術(shù)問題,提供一種能夠降低硬件模塊緩存資源的占用的擁塞控制狀態(tài)信息處理方法、裝置、芯片、網(wǎng)絡(luò)接口卡、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
2、第一方面,本申請(qǐng)?zhí)峁┮环N擁塞控制狀態(tài)信息處理方法,所述方法包括:
3、確定隊(duì)列對(duì)的目的地址;
4、查詢與所述目的地址對(duì)應(yīng)的聚合擁塞控制狀態(tài)信息的地址,其中所述聚合擁塞控制狀態(tài)信息是基于目的地址,將各隊(duì)列對(duì)的擁塞控制狀態(tài)信息進(jìn)行聚合得到的;
5、基于所述聚合擁塞控制狀態(tài)信息的地址,對(duì)所述聚合擁塞控制狀態(tài)信息進(jìn)行處理。
6、在其中一個(gè)實(shí)施例中,所述聚合擁塞控制狀態(tài)信息包括引用計(jì)數(shù)信息;所述基于所述聚合擁塞控制狀態(tài)信息的地址,對(duì)所述聚合擁塞控制狀態(tài)信息進(jìn)行處理,包括:
7、增加所述聚合擁塞控制狀態(tài)信息的引用計(jì)數(shù)信息中的引用計(jì)數(shù)。
8、在其中一個(gè)實(shí)施例中,所述聚合擁塞控制狀態(tài)信息包括引用計(jì)數(shù)信息;所述方法還包括:
9、在未查詢到與所述目的地址對(duì)應(yīng)的聚合擁塞控制狀態(tài)信息的地址的情況下,從預(yù)先申請(qǐng)的主機(jī)內(nèi)存空間中確定目標(biāo)存儲(chǔ)空間,基于所述擁塞控制狀態(tài)信息生成聚合擁塞控制狀態(tài)信息,并將生成的所述聚合擁塞控制狀態(tài)信息存儲(chǔ)至所述目標(biāo)存儲(chǔ)空間,修改生成的所述聚合擁塞控制狀態(tài)信息的引用計(jì)數(shù)信息;
10、將所述目標(biāo)存儲(chǔ)空間中存儲(chǔ)的所述聚合擁塞控制狀態(tài)信息加載至本地緩存;
11、增加所述目的地址與所述聚合擁塞控制狀態(tài)信息的映射關(guān)系。
12、在其中一個(gè)實(shí)施例中,所述聚合擁塞控制狀態(tài)信息包括引用計(jì)數(shù)信息;所述方法還包括:
13、在創(chuàng)建隊(duì)列對(duì)時(shí),將所述隊(duì)列對(duì)對(duì)應(yīng)的聚合擁塞控制狀態(tài)信息的地址存儲(chǔ)至隊(duì)列對(duì)上下文;
14、在刪除所述隊(duì)列對(duì)時(shí),減少所述聚合擁塞控制狀態(tài)信息的引用計(jì)數(shù)信息中的引用計(jì)數(shù);
15、在減少后的所述引用計(jì)數(shù)不大于目標(biāo)值的情況下,釋放所述聚合擁塞控制狀態(tài)信息對(duì)應(yīng)的主機(jī)內(nèi)存以及本地緩存;
16、刪除所述聚合擁塞控制狀態(tài)信息與所述目的地址的映射關(guān)系。
17、在其中一個(gè)實(shí)施例中,所述聚合擁塞控制狀態(tài)信息還包括報(bào)文發(fā)送約束信息;所述方法還包括:
18、接收?qǐng)?bào)文發(fā)送約束信息,并存儲(chǔ)所述報(bào)文發(fā)送約束信息至所述聚合擁塞控制狀態(tài)信息,所述報(bào)文發(fā)送約束信息用于所述隊(duì)列對(duì)中的發(fā)送隊(duì)列基于所述報(bào)文發(fā)送約束信息進(jìn)行報(bào)文發(fā)送,且在所述報(bào)文發(fā)送完畢后,更新所述報(bào)文發(fā)送約束信息。
19、在其中一個(gè)實(shí)施例中,所述報(bào)文發(fā)送約束信息是基于所述聚合擁塞控制狀態(tài)信息中的引用計(jì)數(shù)信息進(jìn)行更新的。
20、第二方面,本申請(qǐng)還提供一種擁塞控制狀態(tài)信息處理裝置,所述裝置包括:
21、處理請(qǐng)求獲取模塊,用于確定隊(duì)列對(duì)的目的地址;
22、查詢模塊,用于查詢與所述目的地址對(duì)應(yīng)的聚合擁塞控制狀態(tài)信息的地址,其中所述聚合擁塞控制狀態(tài)信息是基于目的地址,將各隊(duì)列對(duì)的擁塞控制狀態(tài)信息進(jìn)行聚合得到的;
23、處理模塊,用于基于所述聚合擁塞控制狀態(tài)信息的地址,對(duì)所述聚合擁塞控制狀態(tài)信息進(jìn)行處理。
24、第三方面,本申請(qǐng)還提供一種芯片,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述的方法的步驟。
25、第四方面,本申請(qǐng)還提供一種網(wǎng)絡(luò)接口卡,包括如第三方面所述芯片和多個(gè)接口,所述芯片通過所述接口對(duì)外通信。
26、第五方面,本申請(qǐng)還提供一種計(jì)算機(jī)設(shè)備,包括中央處理器和如第三方面所述芯片,所述芯片用于將報(bào)文調(diào)度給所述中央處理器或所述芯片自身處理,所述中央處理器用于處理所述芯片調(diào)度過來的報(bào)文。
27、第六方面,本申請(qǐng)還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的方法的步驟。
28、第七方面,本申請(qǐng)還提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述的方法的步驟。
29、上述擁塞控制狀態(tài)信息處理方法、裝置、芯片、網(wǎng)絡(luò)接口卡、計(jì)算機(jī)設(shè)備、存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品,聚合擁塞控制狀態(tài)信息是基于目的地址,將各隊(duì)列對(duì)的擁塞控制狀態(tài)信息進(jìn)行聚合得到的,這樣基于目的地址可以查詢得到聚合擁塞控制狀態(tài)信息的地址,并對(duì)其進(jìn)行控制,且基于目的地址對(duì)同一節(jié)點(diǎn)的多個(gè)不同的隊(duì)列對(duì)的擁塞控制狀態(tài)信息進(jìn)行了聚合,這樣硬件緩存中僅需要存儲(chǔ)聚合擁塞控制狀態(tài)信息,降低了硬件模塊緩存的資源占用,降低成本。
1.一種擁塞控制狀態(tài)信息處理方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述聚合擁塞控制狀態(tài)信息包括引用計(jì)數(shù)信息;所述基于所述聚合擁塞控制狀態(tài)信息的地址,對(duì)所述聚合擁塞控制狀態(tài)信息進(jìn)行處理,包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述聚合擁塞控制狀態(tài)信息包括引用計(jì)數(shù)信息;所述方法還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述聚合擁塞控制狀態(tài)信息包括引用計(jì)數(shù)信息;所述方法還包括:
5.根據(jù)權(quán)利要求1至4任意一項(xiàng)所述的方法,其特征在于,所述聚合擁塞控制狀態(tài)信息還包括報(bào)文發(fā)送約束信息;所述方法還包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述報(bào)文發(fā)送約束信息是基于所述聚合擁塞控制狀態(tài)信息中的引用計(jì)數(shù)信息進(jìn)行更新的。
7.一種擁塞控制狀態(tài)信息處理裝置,其特征在于,所述裝置包括:
8.一種芯片,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)權(quán)利要求1至6中任一項(xiàng)所述的方法的步驟。
9.一種網(wǎng)絡(luò)接口卡,其特征在于,包括如權(quán)利要求8所述芯片和多個(gè)接口,所述芯片通過所述接口對(duì)外通信。
10.一種計(jì)算機(jī)設(shè)備,其特征在于,包括中央處理器和如權(quán)利要求8所述芯片,所述芯片用于將報(bào)文調(diào)度給所述中央處理器或所述芯片自身處理,所述中央處理器用于處理所述芯片調(diào)度過來的報(bào)文。
11.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6中任一項(xiàng)所述的方法的步驟。
12.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其特征在于,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6中任一項(xiàng)所述的方法的步驟。