本申請(qǐng)涉及計(jì)算機(jī),尤其涉及一種計(jì)算系統(tǒng)、數(shù)據(jù)處理方法、設(shè)備、裝置、介質(zhì)及程序產(chǎn)品。
背景技術(shù):
1、特定領(lǐng)域架構(gòu)(domain?specific?architecture,dsa),是一種針對(duì)特定領(lǐng)域定制的可編程硬件處理器,能夠用于加速某些應(yīng)用程序。dsa允許在特定領(lǐng)域內(nèi)進(jìn)行優(yōu)化,從而實(shí)現(xiàn)更高的性能。通過(guò)定制硬件或架構(gòu),可以在某些特定任務(wù)中顯著提高執(zhí)行效率,降低延遲,并優(yōu)化能耗。
2、dsa?硬件可作為單獨(dú)的根復(fù)合體集成端點(diǎn)(root?complex?integratedendpoint,rciep)設(shè)備,嵌入到中央處理器(central?processing?unit,cpu)的插槽(socket)中。dsa硬件可實(shí)現(xiàn)數(shù)據(jù)處理的硬件加速。但是cpu與dsa硬件交互執(zhí)行計(jì)算任務(wù)時(shí),需要頻繁地訪問(wèn)內(nèi)存實(shí)現(xiàn)交換數(shù)據(jù)。這些頻繁的內(nèi)存訪問(wèn)操作消耗大量系統(tǒng)資源,影響系統(tǒng)整體性能。
技術(shù)實(shí)現(xiàn)思路
1、本申請(qǐng)的多個(gè)方面提供一種計(jì)算系統(tǒng)、數(shù)據(jù)處理方法、設(shè)備、裝置、介質(zhì)及程序產(chǎn)品,可減少處理器與硬件處理單元之間交換數(shù)據(jù)時(shí)的內(nèi)存訪問(wèn)次數(shù)。
2、本申請(qǐng)實(shí)施例提供一種計(jì)算系統(tǒng),包括:處理器、硬件處理單元及內(nèi)存;所述處理器及所述硬件處理單元分別與所述內(nèi)存電連接;所述內(nèi)存存儲(chǔ)有數(shù)據(jù)隊(duì)列,用于存儲(chǔ)硬件描述符;所述硬件描述符是描述所述硬件處理單元與所述處理器之間所交換的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
3、所述硬件處理單元或所述處理器,用于在所述硬件處理單元與所述處理器之間待交換的目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于或等于設(shè)定的數(shù)據(jù)量閾值的情況下,根據(jù)所述硬件描述符的字段定義,生成攜帶所述目標(biāo)數(shù)據(jù)的目標(biāo)硬件描述符;并將所述目標(biāo)硬件描述符寫(xiě)入所述數(shù)據(jù)隊(duì)列,以供所述目標(biāo)數(shù)據(jù)的接收方從所述數(shù)據(jù)隊(duì)列中讀取所述目標(biāo)硬件描述符,并從所述目標(biāo)硬件描述符中獲取所述目標(biāo)數(shù)據(jù)。
4、本申請(qǐng)實(shí)施例還提供一種數(shù)據(jù)處理方法,適用于處理器或硬件處理單元,所述處理器及所述硬件處理單元分別與內(nèi)存電連接;所述內(nèi)存存儲(chǔ)有數(shù)據(jù)隊(duì)列,用于存儲(chǔ)硬件描述符;所述硬件描述符是描述所述硬件處理單元與所述處理器之間所交換的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
5、所述方法包括:
6、在所述硬件處理單元與所述處理器之間待交換的目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于或等于設(shè)定的數(shù)據(jù)量閾值的情況下,根據(jù)所述硬件描述符的字段定義,生成攜帶所述目標(biāo)數(shù)據(jù)的目標(biāo)硬件描述符;
7、將所述目標(biāo)硬件描述符寫(xiě)入所述數(shù)據(jù)隊(duì)列,以供所述目標(biāo)數(shù)據(jù)的接收方從所述數(shù)據(jù)隊(duì)列中讀取所述目標(biāo)硬件描述符,并從所述目標(biāo)硬件描述符中獲取所述目標(biāo)數(shù)據(jù)。
8、本申請(qǐng)實(shí)施例還提供一種數(shù)據(jù)處理方法,適用于硬件處理單元或處理器,所述處理器及所述硬件處理單元分別與內(nèi)存電連接;所述內(nèi)存存儲(chǔ)有數(shù)據(jù)隊(duì)列,用于存儲(chǔ)硬件描述符;所述硬件描述符是描述所述硬件處理單元與所述處理器之間所交換的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
9、所述方法包括:
10、從所述數(shù)據(jù)隊(duì)列中,讀取目標(biāo)硬件描述符;所述目標(biāo)硬件描述符是在所述硬件處理單元與所述處理器之間待交換的目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于或等于設(shè)定的數(shù)據(jù)量閾值的情況下,所述目標(biāo)數(shù)據(jù)的提供方根據(jù)所述硬件描述符的字段定義,生成的攜帶所述目標(biāo)數(shù)據(jù)的硬件描述符;
11、從所述目標(biāo)硬件描述符中獲取所述目標(biāo)數(shù)據(jù)。
12、本申請(qǐng)實(shí)施例還提供一種硬件處理裝置,包括:內(nèi)存訪問(wèn)引擎和計(jì)算引擎;所述內(nèi)存計(jì)算引擎和所述計(jì)算引擎之間電連接;所述硬件處理裝置用于與內(nèi)存電連接所述內(nèi)存與處理器電連接;所述內(nèi)存存儲(chǔ)有第二數(shù)據(jù)隊(duì)列,所述第二數(shù)據(jù)隊(duì)列中的硬件描述符,是描述所述硬件處理裝置提供給所述處理器的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
13、所述計(jì)算引擎,用于在所述硬件處理裝置與所述處理器之間待交換的目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于或等于設(shè)定的數(shù)據(jù)量閾值的情況下,根據(jù)所述硬件描述符的字段定義,生成攜帶所述目標(biāo)數(shù)據(jù)的目標(biāo)硬件描述符;
14、所述內(nèi)存訪問(wèn)引擎用于:將所述目標(biāo)硬件描述符寫(xiě)入所述第二數(shù)據(jù)隊(duì)列,以供所述處理器從所述第二數(shù)據(jù)隊(duì)列中讀取所述目標(biāo)硬件描述符,并從所述目標(biāo)硬件描述符中獲取所述目標(biāo)數(shù)據(jù)。
15、在另一方面,所述內(nèi)存還存儲(chǔ)有第一數(shù)據(jù)隊(duì)列;所述第一數(shù)據(jù)隊(duì)列中的硬件描述符,是描述所述硬件處理裝置從所述處理器獲取的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
16、所述內(nèi)存訪問(wèn)引擎,還用于:從所述第一數(shù)據(jù)隊(duì)列中,讀取第一硬件描述符;并從所述第一硬件描述符中獲取所述目標(biāo)原始數(shù)據(jù);所述第一硬件描述符是所述處理器在目標(biāo)計(jì)算請(qǐng)求對(duì)應(yīng)的目標(biāo)原始數(shù)據(jù)的數(shù)據(jù)量小于或等于設(shè)定的第一數(shù)據(jù)量閾值的情況下,根據(jù)所述第一數(shù)據(jù)隊(duì)列中的硬件描述符的字段定義,生成的攜帶所述目標(biāo)原始數(shù)據(jù)的硬件描述符;
17、所述計(jì)算引擎,還用于對(duì)所述目標(biāo)原始數(shù)據(jù)進(jìn)行計(jì)算,以得到所述目標(biāo)計(jì)算請(qǐng)求對(duì)應(yīng)的目標(biāo)計(jì)算結(jié)果。
18、本申請(qǐng)實(shí)施例還提供一種電子設(shè)備,包括:存儲(chǔ)器和處理器;所述存儲(chǔ)器包括內(nèi)存和其它存儲(chǔ)介質(zhì);所述處理器與所述內(nèi)存電連接;所述內(nèi)存用于與硬件處理單元電連接;所述其它存儲(chǔ)介質(zhì),用于存儲(chǔ)計(jì)算機(jī)程序;所述內(nèi)存存儲(chǔ)有數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中的硬件描述符,是描述所述硬件處理單元與所述處理器之間待交換的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
19、所述處理器耦合至所述內(nèi)存及所述其它存儲(chǔ)介質(zhì),用于執(zhí)行所述計(jì)算機(jī)程序以用于執(zhí)行前述由處理器執(zhí)行的數(shù)據(jù)處理方法中的步驟。
20、本申請(qǐng)實(shí)施例還提供一種存儲(chǔ)有計(jì)算機(jī)指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述計(jì)算機(jī)指令被一個(gè)或多個(gè)處理器執(zhí)行時(shí),致使所述一個(gè)或多個(gè)處理器執(zhí)行上述各數(shù)據(jù)處理方法中的步驟。
21、本申請(qǐng)實(shí)施例還提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序被一個(gè)或多個(gè)處理器執(zhí)行時(shí),致使所述一個(gè)或多個(gè)處理器執(zhí)行上述各數(shù)據(jù)處理方法中的步驟。
22、在本申請(qǐng)實(shí)施例中,在硬件處理單元與處理器之間的待交換的目標(biāo)數(shù)據(jù)的數(shù)據(jù)量小于或等于設(shè)定的數(shù)據(jù)量閾值時(shí),根據(jù)硬件描述符的字段定義,生成攜帶目標(biāo)數(shù)據(jù)的目標(biāo)硬件描述符,實(shí)現(xiàn)了硬件描述符的字段定義的彈性改變。之后,將目標(biāo)硬件描述符寫(xiě)入內(nèi)存中的數(shù)據(jù)隊(duì)列。這樣,目標(biāo)數(shù)據(jù)的接收方(硬件處理單元或處理器)可從內(nèi)存中讀取目標(biāo)硬件描述符,并直接從目標(biāo)硬件描述符中獲取目標(biāo)數(shù)據(jù)。其中,目標(biāo)數(shù)據(jù)的接收方只需一次內(nèi)存訪問(wèn)操作即可獲取到目標(biāo)數(shù)據(jù),而無(wú)需再去其它內(nèi)存區(qū)域讀取目標(biāo)數(shù)據(jù),可降低目標(biāo)數(shù)據(jù)的接收方的內(nèi)存訪問(wèn)次數(shù),從而降低內(nèi)存訪問(wèn)的資源消耗。
1.一種計(jì)算系統(tǒng),其特征在于,包括:處理器、硬件處理單元及內(nèi)存;所述處理器及所述硬件處理單元,分別與所述內(nèi)存電連接;所述內(nèi)存存儲(chǔ)有數(shù)據(jù)隊(duì)列,用于存儲(chǔ)硬件描述符;所述硬件描述符是描述所述硬件處理單元與所述處理器之間所交換的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
2.一種數(shù)據(jù)處理方法,適用于處理器或硬件處理單元,其特征在于,所述處理器及所述硬件處理單元,分別與內(nèi)存電連接;所述內(nèi)存存儲(chǔ)有數(shù)據(jù)隊(duì)列,用于存儲(chǔ)硬件描述符;所述硬件描述符是描述所述硬件處理單元與所述處理器之間所交換的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法適用于所述處理器;所述數(shù)據(jù)隊(duì)列包括第一數(shù)據(jù)隊(duì)列,所述第一數(shù)據(jù)隊(duì)列中的硬件描述符,是描述所述硬件處理單元從所述處理器獲取的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);所述目標(biāo)數(shù)據(jù)為目標(biāo)計(jì)算請(qǐng)求對(duì)應(yīng)的目標(biāo)原始數(shù)據(jù);所述目標(biāo)數(shù)據(jù)的接收方為所述硬件處理單元;
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述第一數(shù)據(jù)隊(duì)列中的硬件描述符包括:源地址字段和目標(biāo)字段,所述源地址字段用于記錄所述硬件處理單元從所述處理器獲取的數(shù)據(jù)的內(nèi)存地址信息;所述目標(biāo)字段為所述第一數(shù)據(jù)隊(duì)列中的硬件描述符中的空閑字段;
5.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述數(shù)據(jù)隊(duì)列還包括:第二數(shù)據(jù)隊(duì)列;所述第二數(shù)據(jù)隊(duì)列中的硬件描述符是描述所述硬件處理單元提供給所述處理器的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);所述硬件處理單元在所述目標(biāo)計(jì)算結(jié)果的數(shù)據(jù)量小于或等于設(shè)定的第二數(shù)據(jù)量閾值的情況下,根據(jù)所述第二數(shù)據(jù)隊(duì)列中的硬件描述符的字段定義,生成攜帶所述目標(biāo)計(jì)算結(jié)果的第二硬件描述符;并將所述第二硬件描述符寫(xiě)入所述第二數(shù)據(jù)隊(duì)列;
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述第一數(shù)據(jù)隊(duì)列中的硬件描述符包括:目的地址字段,用于記錄所述硬件處理單元提供給所述處理器的數(shù)據(jù)的內(nèi)存地址信息;
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述第二數(shù)據(jù)隊(duì)列中的硬件描述符還包括:目的地址字段,用于記錄所述硬件處理單元提供給所述處理器的數(shù)據(jù)的內(nèi)存地址信息;所述硬件處理單元,在所述目標(biāo)計(jì)算結(jié)果的數(shù)據(jù)量小于或等于所述第二數(shù)據(jù)量閾值下,將無(wú)效的第二內(nèi)存地址信息寫(xiě)入所述第二硬件描述符的目的地址字段;
8.根據(jù)權(quán)利要求3或4所述的方法,其特征在于,所述第一數(shù)據(jù)隊(duì)列中的硬件描述符還包括:操作碼字段,用于記錄計(jì)算請(qǐng)求對(duì)應(yīng)的操作碼;所述方法還包括:
9.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法適用于所述硬件處理單元;所述數(shù)據(jù)隊(duì)列包括:第二數(shù)據(jù)隊(duì)列;所述第二數(shù)據(jù)隊(duì)列中的硬件描述符是描述所述硬件處理單元提供給所述處理器的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);所述目標(biāo)數(shù)據(jù)為所述硬件處理單元待提供給所述處理器的數(shù)據(jù);
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述根據(jù)所述第二數(shù)據(jù)隊(duì)列中的硬件描述符的字段定義,生成攜帶所述目標(biāo)計(jì)算結(jié)果的第三硬件描述符,作為所述目標(biāo)硬件描述符,包括:
11.一種數(shù)據(jù)處理方法,適用于硬件處理單元或處理器,其特征在于,所述處理器及所述硬件處理單元分別與內(nèi)存電連接;所述內(nèi)存存儲(chǔ)有數(shù)據(jù)隊(duì)列,用于存儲(chǔ)硬件描述符;所述硬件描述符是描述所述硬件處理單元與所述處理器之間所交換的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
12.根據(jù)權(quán)利要求11所述方法,其特征在于,所述方法適用于硬件處理單元,所述數(shù)據(jù)隊(duì)列包括第一數(shù)據(jù)隊(duì)列;所述第一數(shù)據(jù)隊(duì)列中的硬件描述符,是描述所述硬件處理單元從所述處理器獲取的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);所述目標(biāo)數(shù)據(jù)為目標(biāo)計(jì)算請(qǐng)求對(duì)應(yīng)的目標(biāo)原始數(shù)據(jù);所述目標(biāo)數(shù)據(jù)的提供方為所述處理器;
13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述第一數(shù)據(jù)隊(duì)列中的硬件描述符包括:源地址字段和目標(biāo)字段,所述源地址字段用于記錄所述硬件處理單元從所述處理器獲取的數(shù)據(jù)的內(nèi)存地址信息;所述處理器在所述目標(biāo)原始數(shù)據(jù)的數(shù)據(jù)量小于或等于設(shè)定的第一數(shù)據(jù)量閾值的情況下,根據(jù)所述第一數(shù)據(jù)隊(duì)列中的硬件描述符的字段定義,將無(wú)效的第一內(nèi)存地址信息寫(xiě)入所述第一硬件描述符的源地址字段,并將所述目標(biāo)原始數(shù)據(jù)寫(xiě)入所述第一硬件描述符的目標(biāo)字段,以得到所述第一硬件描述符;
14.根據(jù)權(quán)利要求12或13所述的方法,其特征在于,所述內(nèi)存還存儲(chǔ)有第二數(shù)據(jù)隊(duì)列;所述第二數(shù)據(jù)隊(duì)列中的硬件描述符是描述所述硬件處理單元提供給所述處理器的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);所述方法還包括:
15.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述第一數(shù)據(jù)隊(duì)列中的硬件描述符包括:目的地址字段,用于記錄所述硬件處理單元提供給所述處理器的數(shù)據(jù)的內(nèi)存地址信息;所述處理器在所述目標(biāo)計(jì)算結(jié)果的數(shù)據(jù)量小于或等于所述第二數(shù)據(jù)量閾值的情況下,將無(wú)效的第二內(nèi)存地址信息寫(xiě)入所述第一硬件描述符的目的地址字段;
16.一種硬件處理裝置,其特征在于,包括:內(nèi)存訪問(wèn)引擎和計(jì)算引擎;所述內(nèi)存計(jì)算引擎和所述計(jì)算引擎之間電連接;所述硬件處理裝置用于與內(nèi)存電連接,所述內(nèi)存與處理器電連接;所述內(nèi)存存儲(chǔ)有第二數(shù)據(jù)隊(duì)列,所述第二數(shù)據(jù)隊(duì)列中的硬件描述符,是描述所述硬件處理裝置提供給所述處理器的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述內(nèi)存還存儲(chǔ)有第一數(shù)據(jù)隊(duì)列;所述第一數(shù)據(jù)隊(duì)列中的硬件描述符,是描述所述硬件處理裝置從所述處理器獲取的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
18.一種電子設(shè)備,其特征在于,包括:存儲(chǔ)器和處理器;所述存儲(chǔ)器包括內(nèi)存和其它存儲(chǔ)介質(zhì);所述處理器與所述內(nèi)存電連接;所述內(nèi)存用于與硬件處理單元電連接;所述其它存儲(chǔ)介質(zhì),用于存儲(chǔ)計(jì)算機(jī)程序;所述內(nèi)存存儲(chǔ)有數(shù)據(jù)隊(duì)列;所述數(shù)據(jù)隊(duì)列中的硬件描述符,是描述所述硬件處理單元與所述處理器之間待交換的數(shù)據(jù)的信息的數(shù)據(jù)結(jié)構(gòu);
19.一種存儲(chǔ)有計(jì)算機(jī)指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,當(dāng)所述計(jì)算機(jī)指令被一個(gè)或多個(gè)處理器執(zhí)行時(shí),致使所述一個(gè)或多個(gè)處理器執(zhí)行權(quán)利要求2-15任一項(xiàng)所述方法中的步驟。
20.一種計(jì)算機(jī)程序產(chǎn)品,其特征在于,包括計(jì)算機(jī)程序,當(dāng)所述計(jì)算機(jī)程序被一個(gè)或多個(gè)處理器執(zhí)行時(shí),致使所述一個(gè)或多個(gè)處理器執(zhí)行權(quán)利要求2-15任一項(xiàng)所述方法中的步驟。