本技術(shù)涉及數(shù)據(jù)傳輸和流量控制,具體涉及一種pcie頭部信用單元大小確認(rèn)方法、系統(tǒng)、設(shè)備及介質(zhì)。
背景技術(shù):
1、在pcie協(xié)議中,針對nfm(non-flit-mode)模式(適用于pcie5.0及之前的協(xié)議),在flow?control(流量控制)的初始化階段,接收方發(fā)送的fc?dllps(流量控制報(bào)文)中只會告知發(fā)送方本端credit的數(shù)量,對于data?buffer?credit(數(shù)據(jù)信用單元)按照一個credit為固定4dw大小的方式協(xié)商,發(fā)送方是可以準(zhǔn)確預(yù)估接收端buffer數(shù)量的。
2、但是對于header?buffer?credit(頭部信用單元),因?yàn)閔eader?buffer?credit的大小是接收方按照本端是否支持prefix以及支持prefix的多少決定的,但是這部分信息,卻沒有包含在現(xiàn)有的fc?dllps中。發(fā)送方知道了接收方header?credit的數(shù)量,但是卻不知道每一個header?credit具體的大小,這樣在發(fā)送方和接收方支持的prefix規(guī)格不同時,就可能會因?yàn)殡p方計(jì)算的credit大小不一致仍然存在溢出丟包或者資源浪費(fèi)的情況。
3、因此,現(xiàn)亟需一種能夠在pcie流量控制流程中對頭部信用單元的大小進(jìn)行協(xié)商的方法,實(shí)現(xiàn)資源的優(yōu)化調(diào)整。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本技術(shù)提供了一種pcie頭部信用單元大小確認(rèn)方法、系統(tǒng)、設(shè)備及介質(zhì),能夠在pcie流量控制流程中對頭部信用單元的大小進(jìn)行協(xié)商,實(shí)現(xiàn)資源的優(yōu)化調(diào)整,該技術(shù)方案如下。
2、第一方面,本技術(shù)提供一種pcie頭部信用單元大小確認(rèn)方法,該方法應(yīng)用于pcie鏈路的nfm模式,該pcie鏈路包括本端設(shè)備和對端設(shè)備,該方法由本端設(shè)備執(zhí)行,該方法包括:
3、當(dāng)pcie流量控制初始化流程啟動后,進(jìn)入新增的fc_init0狀態(tài),接收對端設(shè)備發(fā)送的頭域大小流控報(bào)文;該fc_init0狀態(tài)為在進(jìn)入fc_init1狀態(tài)之前的協(xié)商階段;該頭域大小流控報(bào)文中包含該對端設(shè)備支持的tlp?prefix數(shù)量;
4、根據(jù)該對端設(shè)備支持的tlp?prefix數(shù)量,調(diào)整本端設(shè)備的頭部信用單元大小。
5、在一種可選的實(shí)施方式中,該根據(jù)該對端設(shè)備支持的tlp?prefix數(shù)量,調(diào)整本端設(shè)備的頭部信用單元大小,包括:
6、若本端設(shè)備支持的tlp?prefix數(shù)量小于或等于對端設(shè)備支持的tlp?prefix數(shù)量,則不調(diào)整本端設(shè)備的頭部信用單元大??;
7、若本端設(shè)備支持的tlp?prefix數(shù)量大于對端設(shè)備支持的tlp?prefix數(shù)量,則根據(jù)對端設(shè)備的最大可發(fā)送能力,調(diào)整本端設(shè)備的頭部信用單元大小。
8、在一種可選的實(shí)施方式中,該方法還包括:若對端設(shè)備不支持該頭域大小流控報(bào)文,則當(dāng)pcie流量控制初始化流程啟動后,直接進(jìn)入fc_init1狀態(tài)。
9、在一種可選的實(shí)施方式中,該tlp?prefix數(shù)量包括:局部前綴數(shù)量和端到端前綴數(shù)量。
10、在一種可選的實(shí)施方式中,該方法還包括:完成本端設(shè)備的頭部信用單元大小的調(diào)整之后,進(jìn)入fc_init1狀態(tài)。
11、本技術(shù)提供的一種pcie頭部信用單元大小確認(rèn)方法,具備如下優(yōu)點(diǎn):
12、本技術(shù)的pcie頭部信用單元大小確認(rèn)方法,應(yīng)用于pcie鏈路的nfm模式下的pcie流量控制初始化流程,pcie鏈路包括本端設(shè)備和對端設(shè)備,本方法由本端設(shè)備執(zhí)行。當(dāng)pcie流量控制初始化流程啟動后,在進(jìn)入fc_init1狀態(tài)之前,增加一個新的協(xié)商階段,即fc_init0狀態(tài)。具體而言,在進(jìn)入fc_init1狀態(tài)之前,進(jìn)入新增的fc_init0狀態(tài),進(jìn)行頭部信用單元大小的協(xié)商,接收對端設(shè)備發(fā)送的頭域大小流控報(bào)文,該頭域大小流控報(bào)文是預(yù)構(gòu)建的,包含了對端設(shè)備支持的tlp?prefix數(shù)量。本端設(shè)備將頭域大小流控報(bào)文中對端設(shè)備支持的tlp?prefix數(shù)量與自身支持的tlp?prefix數(shù)量進(jìn)行比較,若本端設(shè)備支持的tlpprefix數(shù)量小于對端設(shè)備支持的tlp?prefix數(shù)量,則不調(diào)整本端設(shè)備的頭部信用單元大小,后續(xù)若接收到對端發(fā)送的超出接收能力的不支持的報(bào)文類型按照pcie錯誤處理;若本端設(shè)備支持的tlp?prefix數(shù)量大于對端設(shè)備支持的tlp?prefix數(shù)量,則根據(jù)對端設(shè)備的最大可發(fā)送能力,重新計(jì)算調(diào)整本端設(shè)備的頭部信用單元大小,將多余的緩存換成更深的深度。完成頭部信用單元的重新計(jì)算調(diào)整之后,進(jìn)入fc_init1狀態(tài)。此外,若對端設(shè)備是不支持頭域大小流控報(bào)文的設(shè)備,則當(dāng)pcie流量控制初始化流程啟動后,直接進(jìn)入fc_init1狀態(tài)。進(jìn)入fc_init1狀態(tài)后,流程與原pcie5.0初始化流程一致,直到進(jìn)入dl_active狀態(tài)。針對pcie協(xié)議中缺失頭部信用單元大小的協(xié)商,增加相關(guān)協(xié)商流程后,pcie總線雙方可以更加準(zhǔn)確的同步雙方頭部信用單元的大小,同時根據(jù)設(shè)備自身的緩存總大小情況,靈活調(diào)整credit數(shù)量,擠壓剩余浪費(fèi)的緩存空間,實(shí)現(xiàn)資源的更合理分配。
13、第二方面,本技術(shù)提供一種pcie頭部信用單元大小確認(rèn)系統(tǒng),該系統(tǒng)應(yīng)用于pcie鏈路的nfm模式,該pcie鏈路包括本端設(shè)備和對端設(shè)備,該系統(tǒng)由本端設(shè)備執(zhí)行,該系統(tǒng)包括:
14、獲取模塊,用于當(dāng)pcie流量控制初始化流程啟動后,進(jìn)入新增的fc_init0狀態(tài),接收對端設(shè)備發(fā)送的頭域大小流控報(bào)文;該fc_init0狀態(tài)為在進(jìn)入fc_init1狀態(tài)之前的協(xié)商階段;該頭域大小流控報(bào)文中包含該對端設(shè)備支持的tlp?prefix數(shù)量;
15、調(diào)整模塊,用于根據(jù)該對端設(shè)備支持的tlp?prefix數(shù)量,調(diào)整本端設(shè)備的頭部信用單元大小。
16、在一種可選的實(shí)施方式中,該調(diào)整模塊,具體用于:
17、若本端設(shè)備支持的tlp?prefix數(shù)量小于或等于對端設(shè)備支持的tlp?prefix數(shù)量,則不調(diào)整本端設(shè)備的頭部信用單元大小;
18、若本端設(shè)備支持的tlp?prefix數(shù)量大于對端設(shè)備支持的tlp?prefix數(shù)量,則根據(jù)對端設(shè)備的最大可發(fā)送能力,調(diào)整本端設(shè)備的頭部信用單元大小。
19、在一種可選的實(shí)施方式中,該系統(tǒng)還包括:
20、流程控制模塊,用于完成本端設(shè)備的頭部信用單元大小的調(diào)整之后,進(jìn)入fc_init1狀態(tài)。
21、在一種可選的實(shí)施方式中,該流程控制模塊,還用于:若對端設(shè)備不支持該頭域大小流控報(bào)文,則當(dāng)pcie流量控制初始化流程啟動后,直接進(jìn)入fc_init1狀態(tài)。
22、第三方面,本技術(shù)提供了一種計(jì)算機(jī)設(shè)備,包括:存儲器和處理器,存儲器和處理器之間互相通信連接,存儲器中存儲有計(jì)算機(jī)指令,處理器通過執(zhí)行計(jì)算機(jī)指令,從而執(zhí)行上述第一方面或其對應(yīng)的任一實(shí)施方式的pcie頭部信用單元大小確認(rèn)方法。
23、第四方面,本技術(shù)提供了一種計(jì)算機(jī)可讀存儲介質(zhì),該計(jì)算機(jī)可讀存儲介質(zhì)上存儲有計(jì)算機(jī)指令,計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行上述第一方面或其對應(yīng)的任一實(shí)施方式的pcie頭部信用單元大小確認(rèn)方法。
24、第五方面,本技術(shù)提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)指令,計(jì)算機(jī)指令用于使計(jì)算機(jī)執(zhí)行上述第一方面或其對應(yīng)的任一實(shí)施方式的pcie頭部信用單元大小確認(rèn)方法。