本發(fā)明涉及計(jì)算機(jī),特別涉及一種業(yè)務(wù)處理方法、裝置、設(shè)備及介質(zhì)。
背景技術(shù):
1、當(dāng)前,傳統(tǒng)soc(system?on?chip,片上系統(tǒng))系統(tǒng)中,系統(tǒng)各模塊從單一的sram(靜態(tài)隨機(jī)存取內(nèi)存,static?random-access?memory)上分配內(nèi)存資源,因此片上sram中存放著系統(tǒng)鏡像代碼、純軟件訪問數(shù)據(jù)、軟硬交互訪問數(shù)據(jù)、純硬件訪問數(shù)據(jù)等不同特征的業(yè)務(wù)數(shù)據(jù),具體的,不同業(yè)務(wù)數(shù)據(jù)具有不同的處理方式:1、對(duì)于純軟件訪問數(shù)據(jù),通過使能cache以提升cpu訪問sram性能,cache(高速緩沖存儲(chǔ)器,也即緩存)命中率越高,軟件訪問數(shù)據(jù)整體性能越高;2、對(duì)于軟硬交互訪問數(shù)據(jù),軟件將數(shù)據(jù)交給硬件訪問前,執(zhí)行flush操作(刷新緩存,將緩存中數(shù)據(jù)同步至內(nèi)存),以保證cache中數(shù)據(jù)被寫入內(nèi)存,從而保證硬件讀取到正確的數(shù)據(jù),硬件寫完之后,軟件執(zhí)行invalidate操作(使緩存為空),然后再讀取內(nèi)存數(shù)據(jù),以保證軟件正確讀到硬件寫入內(nèi)存的數(shù)據(jù);3、對(duì)于純硬件訪問數(shù)據(jù),軟件交給硬件后,硬件通過dma(direct?memory?access,直接內(nèi)存訪問)方式訪問內(nèi)存。
2、但是,單一sram從cpu和硬件ip(intellectual?property?core,知識(shí)產(chǎn)權(quán)模塊)出發(fā)訪問時(shí),sram可能靠近距離cpu(central?processing?unit,中央處理器)一側(cè),也可能靠近硬件ip一側(cè),由于cpu和硬件ip訪問的總線路徑越長,訪問速率越低,因此單一sram器件難以同時(shí)滿足軟件、硬件的高性能訪問,另外,對(duì)于軟硬交互訪問數(shù)據(jù),軟件在硬件讀之前執(zhí)行flush,在硬件寫之后執(zhí)行invalidate。當(dāng)軟硬交互比較頻繁時(shí),flush操作會(huì)將數(shù)據(jù)從緩存中同步到內(nèi)存,此操作一般會(huì)耗時(shí)較長,尤其當(dāng)一次性同步一大塊數(shù)據(jù)時(shí),延遲更高,因而對(duì)整體性能存在較大影響。
3、綜上,如何實(shí)現(xiàn)軟件、硬件的高性能訪問,并提高軟硬件交互的效率是當(dāng)前亟待解決的問題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提供一種業(yè)務(wù)處理方法、裝置、設(shè)備及介質(zhì),能夠?qū)崿F(xiàn)軟件、硬件的高性能訪問,并提高軟硬件交互的效率,其具體方案如下:
2、第一方面,本技術(shù)公開了一種業(yè)務(wù)處理方法,應(yīng)用于片上系統(tǒng),所述片上系統(tǒng)的片上靜態(tài)隨機(jī)存取內(nèi)存中包括位于中央處理器所在一側(cè)的第一內(nèi)存、處于所述中央處理器與總工作引擎之間中間位置的第二內(nèi)存和位于所述總工作引擎所在一側(cè)的第三內(nèi)存,包括:
3、通過所述中央處理器,獲取目標(biāo)業(yè)務(wù),基于所述第一內(nèi)存的內(nèi)存資源并根據(jù)所述目標(biāo)業(yè)務(wù)確定處理所述目標(biāo)業(yè)務(wù)所需的目標(biāo)資源,并將所述目標(biāo)資源存放至第一內(nèi)存;
4、通過所述中央處理器,從所述第一內(nèi)存中提取所述目標(biāo)資源,將所述目標(biāo)資源轉(zhuǎn)換為硬件可識(shí)別數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換后資源,并將所述轉(zhuǎn)換后資源存放至緩存;
5、通過所述總工作引擎,從所述緩存中獲取所述轉(zhuǎn)換后資源,基于所述第三內(nèi)存的內(nèi)存資源根據(jù)所述轉(zhuǎn)換后資源處理所述目標(biāo)業(yè)務(wù),并將處理結(jié)果存放至所述第二內(nèi)存;
6、通過所述中央處理器將所述處理結(jié)果從所述第二內(nèi)存存放至所述第一內(nèi)存。
7、可選的,所述通過所述總工作引擎,從所述緩存中獲取所述轉(zhuǎn)換后資源,包括:
8、通過所述總工作引擎,根據(jù)加速器一致性端口直接從所述緩存中獲取所述轉(zhuǎn)換后資源。
9、可選的,所述片上系統(tǒng)的片上靜態(tài)隨機(jī)存取內(nèi)存中包括與中央處理器片上互聯(lián)子系統(tǒng)掛接的第一內(nèi)存、與軟硬件交互片上互聯(lián)子系統(tǒng)掛接的第二內(nèi)存和與硬件片上互聯(lián)子系統(tǒng)掛接的第三內(nèi)存;其中,所述中央處理器片上互聯(lián)子系統(tǒng)與所述中央處理器掛接,所述硬件片上互聯(lián)子系統(tǒng)與所述總工作引擎掛接;
10、相應(yīng)的,所述通過所述中央處理器,獲取目標(biāo)業(yè)務(wù),基于所述第一內(nèi)存的內(nèi)存資源并根據(jù)所述目標(biāo)業(yè)務(wù)確定處理所述目標(biāo)業(yè)務(wù)所需的目標(biāo)資源,并將所述目標(biāo)資源存放至第一內(nèi)存,包括:
11、通過所述中央處理器,獲取目標(biāo)業(yè)務(wù),基于所述第一內(nèi)存的內(nèi)存資源并根據(jù)所述目標(biāo)業(yè)務(wù)確定處理所述目標(biāo)業(yè)務(wù)所需的目標(biāo)資源,并經(jīng)過所述中央處理器片上互聯(lián)子系統(tǒng)將所述目標(biāo)資源存放至第一內(nèi)存;
12、相應(yīng)的,所述通過所述中央處理器,從所述第一內(nèi)存中提取所述目標(biāo)資源,將所述目標(biāo)資源轉(zhuǎn)換為硬件可識(shí)別數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換后資源,并將所述轉(zhuǎn)換后資源存放至緩存,包括:
13、通過所述中央處理器,經(jīng)過所述中央處理器片上互聯(lián)子系統(tǒng)從所述第一內(nèi)存中提取所述目標(biāo)資源,將所述目標(biāo)資源轉(zhuǎn)換為硬件可識(shí)別數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換后資源,并將所述轉(zhuǎn)換后資源存放至緩存;
14、相應(yīng)的,所述通過所述總工作引擎,從所述緩存中獲取所述轉(zhuǎn)換后資源,基于所述第三內(nèi)存的內(nèi)存資源根據(jù)所述轉(zhuǎn)換后資源處理所述目標(biāo)業(yè)務(wù),并將處理結(jié)果存放至所述第二內(nèi)存,包括:
15、通過所述總工作引擎,從所述緩存中獲取所述轉(zhuǎn)換后資源,基于所述第三內(nèi)存的內(nèi)存資源根據(jù)所述轉(zhuǎn)換后資源處理所述目標(biāo)業(yè)務(wù),并經(jīng)過所述硬件片上互聯(lián)子系統(tǒng)和所述軟硬件交互片上互聯(lián)子系統(tǒng)將處理結(jié)果存放至所述第二內(nèi)存;
16、相應(yīng)的,所述通過所述中央處理器將所述處理結(jié)果從所述第二內(nèi)存存放至所述第一內(nèi)存,包括:
17、通過所述中央處理器,經(jīng)過所述軟硬件交互片上互聯(lián)子系統(tǒng)和所述中央處理器片上互聯(lián)子系統(tǒng)將所述處理結(jié)果從所述第二內(nèi)存存放至所述第一內(nèi)存。
18、可選的,所述目標(biāo)資源包括所述總工作引擎中按照運(yùn)行順序存放用于處理所述目標(biāo)業(yè)務(wù)的若干工作引擎的引擎列表;
19、相應(yīng)的,所述通過所述總工作引擎,從所述緩存中獲取所述轉(zhuǎn)換后資源,基于所述第三內(nèi)存的內(nèi)存資源根據(jù)所述轉(zhuǎn)換后資源處理所述目標(biāo)業(yè)務(wù),包括:
20、通過所述若干工作引擎中的任一目標(biāo)引擎,從所述緩存中獲取所述轉(zhuǎn)換后資源;
21、通過所述目標(biāo)引擎,基于所述轉(zhuǎn)換后資源分配所述若干工作引擎需要的所述第三內(nèi)存的內(nèi)存資源并基于所述運(yùn)行順序?yàn)樗鋈舾晒ぷ饕娣峙淙蝿?wù),以便所述若干工作引擎根據(jù)所述轉(zhuǎn)換后資源處理所述目標(biāo)業(yè)務(wù)。
22、可選的,所述目標(biāo)引擎對(duì)應(yīng)的寄存器只存在控制寄存器和狀態(tài)寄存器。
23、可選的,所述目標(biāo)資源還包括輸入數(shù)據(jù)和輸入數(shù)據(jù)大小,或,所述輸入數(shù)據(jù)、輸入數(shù)據(jù)大小和輸出數(shù)據(jù)大小;
24、相應(yīng)的,所述業(yè)務(wù)處理方法,還包括:
25、當(dāng)所述目標(biāo)資源中的所述輸入數(shù)據(jù)和所述輸入數(shù)據(jù)大小為空時(shí),禁止觸發(fā)所述將所述目標(biāo)資源存放至第一內(nèi)存的步驟以及后續(xù)步驟。
26、可選的,所述將所述目標(biāo)資源轉(zhuǎn)換為硬件可識(shí)別數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換后資源,包括:
27、將所述目標(biāo)資源轉(zhuǎn)換為控制塊數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換后資源。
28、第二方面,本技術(shù)公開了一種業(yè)務(wù)處理裝置,應(yīng)用于片上系統(tǒng),所述片上系統(tǒng)的片上靜態(tài)隨機(jī)存取內(nèi)存中包括位于中央處理器所在一側(cè)的第一內(nèi)存、處于所述中央處理器與總工作引擎之間中間位置的第二內(nèi)存和位于所述總工作引擎所在一側(cè)的第三內(nèi)存,包括:
29、第一資源存放模塊,用于通過所述中央處理器,獲取目標(biāo)業(yè)務(wù),基于所述第一內(nèi)存的內(nèi)存資源并根據(jù)所述目標(biāo)業(yè)務(wù)確定處理所述目標(biāo)業(yè)務(wù)所需的目標(biāo)資源,并將所述目標(biāo)資源存放至第一內(nèi)存;
30、第二資源存放模塊,用于通過所述中央處理器,從所述第一內(nèi)存中提取所述目標(biāo)資源,將所述目標(biāo)資源轉(zhuǎn)換為硬件可識(shí)別數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換后資源,并將所述轉(zhuǎn)換后資源存放至緩存;
31、業(yè)務(wù)處理模塊,用于通過所述總工作引擎,從所述緩存中獲取所述轉(zhuǎn)換后資源,基于所述第三內(nèi)存的內(nèi)存資源根據(jù)所述轉(zhuǎn)換后資源處理所述目標(biāo)業(yè)務(wù),并將處理結(jié)果存放至所述第二內(nèi)存;
32、處理結(jié)果轉(zhuǎn)存模塊,用于通過所述中央處理器將所述處理結(jié)果從所述第二內(nèi)存存放至所述第一內(nèi)存。
33、第三方面,本技術(shù)公開了一種電子設(shè)備,包括:
34、存儲(chǔ)器,用于保存計(jì)算機(jī)程序;
35、處理器,用于執(zhí)行所述計(jì)算機(jī)程序,以實(shí)現(xiàn)前述公開的業(yè)務(wù)處理方法。
36、第四方面,本技術(shù)公開了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),用于保存計(jì)算機(jī)程序;其中,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)前述公開的業(yè)務(wù)處理方法。
37、本技術(shù)有益效果為:本技術(shù)通過所述中央處理器,獲取目標(biāo)業(yè)務(wù),基于所述第一內(nèi)存的內(nèi)存資源并根據(jù)所述目標(biāo)業(yè)務(wù)確定處理所述目標(biāo)業(yè)務(wù)所需的目標(biāo)資源,并將所述目標(biāo)資源存放至第一內(nèi)存;通過所述中央處理器,從所述第一內(nèi)存中提取所述目標(biāo)資源,將所述目標(biāo)資源轉(zhuǎn)換為硬件可識(shí)別數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換后資源,并將所述轉(zhuǎn)換后資源存放至緩存;通過所述總工作引擎,從所述緩存中獲取所述轉(zhuǎn)換后資源,基于所述第三內(nèi)存的內(nèi)存資源根據(jù)所述轉(zhuǎn)換后資源處理所述目標(biāo)業(yè)務(wù),并將處理結(jié)果存放至所述第二內(nèi)存;通過所述中央處理器將所述處理結(jié)果從所述第二內(nèi)存存放至所述第一內(nèi)存。由此可見,本技術(shù)中央處理器基于第一內(nèi)存資源處理業(yè)務(wù),總工作引擎基于第三內(nèi)存資源處理業(yè)務(wù),且第一內(nèi)存位于中央處理器所在一側(cè),所述第三內(nèi)存位于總工作引擎所在一側(cè),因此訪問時(shí)路徑短,速率高,可同時(shí)滿足軟件、硬件的高性能訪問;另外,軟硬件交互訪問數(shù)據(jù)過程直接將數(shù)據(jù)存放緩存,總工作引擎從緩存中取數(shù)據(jù),而不是從第二內(nèi)存中取數(shù)據(jù),不用flush操作,因此提高傳輸速度,進(jìn)一步提高軟硬件交互的效率。