本說明書實施例涉及計算機,特別涉及一種數(shù)據(jù)處理方法。
背景技術(shù):
1、在大數(shù)據(jù)場景下,通常使用cpu(central?processing?unit,中央處理器)進行數(shù)據(jù)處理(例如數(shù)據(jù)查詢),cpu運行頻率高且設(shè)計靈活,但單個核的cpu的運行模式為串行運算,并行度低。若使用cpu進行sql(structured?query?language,結(jié)構(gòu)化查詢語言)算子運算,大量的cpu資源使用在了掃描數(shù)據(jù)塊的過程中,導(dǎo)致寶貴的cpu資源無法進行其他運算。為此,現(xiàn)有技術(shù)中提供了一種cpu加fpga(field?programmable?gate?array,可編程門陣列)的新型異構(gòu)計算平臺進行數(shù)據(jù)處理。
2、但是,cpu加fpga的新型異構(gòu)計算平臺進行數(shù)據(jù)處理時,需要頻繁地在cpu所在的host(主機)端與fpga所在的device(設(shè)備)端進行大量的數(shù)據(jù)搬移,這就極易引發(fā)讀寫競爭問題,導(dǎo)致i/o(input/output,輸入/輸出)帶寬達到瓶頸,增加了數(shù)據(jù)搬移工具dma的工作負載和在數(shù)據(jù)存儲單元ddr的讀寫競爭。
技術(shù)實現(xiàn)思路
1、有鑒于此,本說明書實施例提供了兩種數(shù)據(jù)處理方法。本說明書一個或者多個實施例同時涉及兩種數(shù)據(jù)處理裝置,一種計算設(shè)備,一種計算機可讀存儲介質(zhì)以及一種計算機程序,以解決現(xiàn)有技術(shù)中存在的技術(shù)缺陷。
2、根據(jù)本說明書實施例的第一方面,提供了一種數(shù)據(jù)處理方法,應(yīng)用于第一數(shù)據(jù)處理器,包括:
3、接收第二數(shù)據(jù)處理器發(fā)送的數(shù)據(jù)查詢請求;
4、根據(jù)所述數(shù)據(jù)查詢請求,對數(shù)據(jù)存儲單元的初始數(shù)據(jù)進行數(shù)據(jù)讀取并處理,獲得目標數(shù)據(jù)以及所述目標數(shù)據(jù)對應(yīng)的數(shù)據(jù)查詢表;
5、將所述目標數(shù)據(jù)以及所述數(shù)據(jù)查詢表,存儲至所述數(shù)據(jù)存儲單元,并向所述第二數(shù)據(jù)處理器發(fā)送查詢結(jié)束指令,以使所述第二數(shù)據(jù)處理器根據(jù)所述查詢結(jié)束指令、對所述數(shù)據(jù)查詢表進行獲取,并根據(jù)所述數(shù)據(jù)查詢表,確定是否從所述數(shù)據(jù)存儲單元獲取所述目標數(shù)據(jù)。
6、根據(jù)本說明書實施例的第二方面,提供了一種數(shù)據(jù)處理方法,應(yīng)用于第二數(shù)據(jù)處理器,包括:
7、響應(yīng)于第一數(shù)據(jù)處理器發(fā)送的查詢結(jié)束指令,對數(shù)據(jù)查詢表進行獲取,其中,所述查詢結(jié)束指令為所述第一數(shù)據(jù)處理器將根據(jù)數(shù)據(jù)查詢請求,對數(shù)據(jù)存儲單元的初始數(shù)據(jù)進行數(shù)據(jù)讀取并處理,獲得目標數(shù)據(jù)以及所述目標數(shù)據(jù)對應(yīng)的數(shù)據(jù)查詢表,并將所述目標數(shù)據(jù)以及所述目標數(shù)據(jù)對應(yīng)的數(shù)據(jù)查詢表存儲至數(shù)據(jù)存儲單元后發(fā)送;
8、根據(jù)所述數(shù)據(jù)查詢表,確定是否從所述數(shù)據(jù)存儲單元獲取所述目標數(shù)據(jù)。
9、根據(jù)本說明書實施例的第三方面,提供了一種數(shù)據(jù)處理裝置,應(yīng)用于第一數(shù)據(jù)處理器,包括:
10、請求接收模塊,被配置為接收第二數(shù)據(jù)處理器發(fā)送的數(shù)據(jù)查詢請求;
11、數(shù)據(jù)獲得模塊,被配置為根據(jù)所述數(shù)據(jù)查詢請求,對數(shù)據(jù)存儲單元的初始數(shù)據(jù)進行數(shù)據(jù)讀取并處理,獲得目標數(shù)據(jù)以及所述目標數(shù)據(jù)對應(yīng)的數(shù)據(jù)查詢表;
12、指令發(fā)送模塊,被配置為將所述目標數(shù)據(jù)以及所述數(shù)據(jù)查詢表,存儲至所述數(shù)據(jù)存儲單元,并向所述第二數(shù)據(jù)處理器發(fā)送查詢結(jié)束指令,以使所述第二數(shù)據(jù)處理器根據(jù)所述查詢結(jié)束指令、對所述數(shù)據(jù)查詢表進行獲取,并根據(jù)所述數(shù)據(jù)查詢表,確定是否從所述數(shù)據(jù)存儲單元獲取所述目標數(shù)據(jù)。
13、根據(jù)本說明書實施例的第四方面,提供了一種數(shù)據(jù)處理裝置,應(yīng)用于第二數(shù)據(jù)處理器,包括:
14、查詢表獲取模塊,被配置為響應(yīng)于第一數(shù)據(jù)處理器發(fā)送的查詢結(jié)束指令,對數(shù)據(jù)查詢表進行獲取,其中,所述查詢結(jié)束指令為所述第一數(shù)據(jù)處理器將根據(jù)數(shù)據(jù)查詢請求,對數(shù)據(jù)存儲單元的初始數(shù)據(jù)進行數(shù)據(jù)讀取并處理,獲得目標數(shù)據(jù)以及所述目標數(shù)據(jù)對應(yīng)的數(shù)據(jù)查詢表,并將所述目標數(shù)據(jù)以及所述目標數(shù)據(jù)對應(yīng)的數(shù)據(jù)查詢表存儲至數(shù)據(jù)存儲單元后發(fā)送;
15、獲取確定模塊,被配置為根據(jù)所述數(shù)據(jù)查詢表,確定是否從所述數(shù)據(jù)存儲單元獲取所述目標數(shù)據(jù)。
16、根據(jù)本說明書實施例的第五方面,提供了一種計算設(shè)備,包括:
17、存儲器和處理器;
18、所述存儲器用于存儲計算機可執(zhí)行指令,所述處理器用于執(zhí)行所述計算機可執(zhí)行指令,該計算機可執(zhí)行指令被處理器執(zhí)行時實現(xiàn)上述數(shù)據(jù)處理方法的步驟。
19、根據(jù)本說明書實施例的第六方面,提供了一種計算機可讀存儲介質(zhì),其存儲有計算機可執(zhí)行指令,該指令被處理器執(zhí)行時實現(xiàn)上述數(shù)據(jù)處理方法的步驟。
20、根據(jù)本說明書實施例的第七方面,提供了一種計算機程序,其中,當所述計算機程序在計算機中執(zhí)行時,令計算機執(zhí)行上述數(shù)據(jù)處理方法的步驟。
21、本說明書一個實施例提供的數(shù)據(jù)處理方法,通過接收第二數(shù)據(jù)處理器發(fā)送的數(shù)據(jù)查詢請求;根據(jù)所述數(shù)據(jù)查詢請求,對數(shù)據(jù)存儲單元的初始數(shù)據(jù)進行數(shù)據(jù)讀取并處理,獲得目標數(shù)據(jù)以及所述目標數(shù)據(jù)對應(yīng)的數(shù)據(jù)查詢表;將所述目標數(shù)據(jù)以及所述數(shù)據(jù)查詢表,存儲至所述數(shù)據(jù)存儲單元,并向所述第二數(shù)據(jù)處理器發(fā)送查詢結(jié)束指令,以使所述第二數(shù)據(jù)處理器根據(jù)所述查詢結(jié)束指令、對所述數(shù)據(jù)查詢表進行獲取,并根據(jù)所述數(shù)據(jù)查詢表,確定是否從所述數(shù)據(jù)存儲單元獲取所述目標數(shù)據(jù)。
22、具體的,該數(shù)據(jù)處理方法通過將原有的對第二數(shù)據(jù)處理器消耗較大的計算型任務(wù)卸載至第一數(shù)據(jù)處理器中,節(jié)省第二數(shù)據(jù)處理器的資源和降低延遲;通過對第一數(shù)據(jù)處理器中數(shù)據(jù)存儲單元的初始數(shù)據(jù)進行數(shù)據(jù)讀取并處理,獲得目標數(shù)據(jù)以及所述目標數(shù)據(jù)對應(yīng)的數(shù)據(jù)查詢表;以使第二數(shù)據(jù)處理器對數(shù)據(jù)查詢表進行獲取,不需對每次數(shù)據(jù)處理后的目標數(shù)據(jù)進行搬移,只需搬移該數(shù)據(jù)查詢表,有效降低了數(shù)據(jù)搬移量,降低了引發(fā)讀寫競爭問題,根據(jù)數(shù)據(jù)查詢表,確定是否從所述數(shù)據(jù)存儲單元獲取所述目標數(shù)據(jù),通過對數(shù)據(jù)查詢表的分析,只獲取有效的目標數(shù)據(jù),降低了數(shù)據(jù)搬移工具的工作負載和在數(shù)據(jù)存儲單元的讀寫競爭。
1.一種數(shù)據(jù)處理方法,應(yīng)用于第一數(shù)據(jù)處理器,包括:
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理方法,所述根據(jù)所述數(shù)據(jù)查詢請求,對數(shù)據(jù)存儲單元的初始數(shù)據(jù)進行數(shù)據(jù)讀取并處理,獲得目標數(shù)據(jù)以及所述目標數(shù)據(jù)對應(yīng)的數(shù)據(jù)查詢表,包括:
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理方法,所述根據(jù)預(yù)設(shè)查詢結(jié)構(gòu)對各目標數(shù)據(jù)塊的聚合數(shù)據(jù)進行處理,生成各目標數(shù)據(jù)塊對應(yīng)的數(shù)據(jù)查詢表,包括:
4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理方法,所述數(shù)據(jù)查詢請求中攜帶有數(shù)據(jù)讀取起始地址以及數(shù)據(jù)讀取長度;
5.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理方法,所述將所述目標數(shù)據(jù)以及所述數(shù)據(jù)查詢表,存儲至所述數(shù)據(jù)存儲單元,包括:
6.根據(jù)權(quán)利要求1或5所述的數(shù)據(jù)處理方法,所述向所述第二數(shù)據(jù)處理器發(fā)送查詢結(jié)束指令,以使所述第二數(shù)據(jù)處理器根據(jù)所述查詢結(jié)束指令、對所述數(shù)據(jù)查詢表進行獲取,并根據(jù)所述數(shù)據(jù)查詢表,確定是否從所述數(shù)據(jù)存儲單元獲取所述目標數(shù)據(jù),包括:
7.根據(jù)權(quán)利要求2所述的方法,所述第一數(shù)據(jù)處理器,包括控制單元、讀取單元;
8.根據(jù)權(quán)利要求7所述的方法,所述第一數(shù)據(jù)處理器,還包括選擇單元、處理單元;
9.根據(jù)權(quán)利要求8所述的方法,所述第一數(shù)據(jù)處理器,還包括寫回單元;
10.一種數(shù)據(jù)處理方法,應(yīng)用于第二數(shù)據(jù)處理器,包括:
11.根據(jù)權(quán)利要求10所述的方法,所述響應(yīng)于第一數(shù)據(jù)處理器發(fā)送的查詢結(jié)束指令,對數(shù)據(jù)查詢表進行獲取,包括:
12.根據(jù)權(quán)利要求10所述的方法,所述響應(yīng)于第一數(shù)據(jù)處理器發(fā)送的查詢結(jié)束指令,對數(shù)據(jù)查詢表進行獲取之前,還包括:
13.根據(jù)權(quán)利要求12所述的方法,所述根據(jù)所述數(shù)據(jù)查詢表,確定是否從所述數(shù)據(jù)存儲單元獲取所述目標數(shù)據(jù),包括:
14.一種數(shù)據(jù)處理裝置,應(yīng)用于第一數(shù)據(jù)處理器,包括: