本發(fā)明涉及數(shù)據(jù)處理,尤其涉及一種基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法及系統(tǒng)。
背景技術(shù):
1、在常見的消費(fèi)電子領(lǐng)域,如平板、投影儀和行車記錄儀等產(chǎn)品中,通常會(huì)涉及各種各樣的圖像處理需求,如圖層疊加,縮放和旋轉(zhuǎn)等。對(duì)主控芯片來說,這類型的圖像處理需求一般會(huì)交由soc內(nèi)部專用的圖像處理器執(zhí)行,由cpu對(duì)該圖像處理器進(jìn)行調(diào)度,去滿足系統(tǒng)的圖像實(shí)時(shí)處理需求。當(dāng)soc芯片在執(zhí)行圖像處理任務(wù)時(shí),有可能會(huì)因?yàn)閏pu負(fù)載過高,而無法及時(shí)響應(yīng)圖像處理器的中斷信號(hào),導(dǎo)致任務(wù)與任務(wù)之間存在空隙,造成圖像處理器的性能下降,最終無法滿足系統(tǒng)對(duì)圖像實(shí)時(shí)處理需求。
2、為了減少任務(wù)與任務(wù)之間的間隙,目前業(yè)界內(nèi)主流技術(shù)方案有通過雙控制寄存器(乒乓寄存器)來實(shí)現(xiàn)軟件提前配置下一個(gè)任務(wù),以減少任務(wù)之間的空隙,或者通過如圖1所公開的一種同步多線程處理器的結(jié)構(gòu)示意圖,如圖1所示,實(shí)例化第一流水控制單元和第二流水控制單元,即2套流水控制單元,來調(diào)度第一專用執(zhí)行單元、第二專用執(zhí)行單元,即2套專用執(zhí)行單元和獨(dú)立的共享執(zhí)行單元,以減少任務(wù)間隙。
3、然而,實(shí)踐發(fā)現(xiàn),這兩種技術(shù)方案均會(huì)面臨增大硬件資源開銷和系統(tǒng)與硬件的耦合程度,所增加的成本也沒有帶來硬件性能上限的提升。因此,亟需提出一種如何在能夠減少任務(wù)間隙的同時(shí)如何節(jié)省硬件資源(如面積、成本)的技術(shù)方案。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明所要解決的技術(shù)問題在于,提供一種基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法及系統(tǒng),能夠減少任務(wù)間隙的同時(shí)節(jié)省硬件資源。
2、為了解決上述技術(shù)問題,本發(fā)明實(shí)施例第一方面公開了一種基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法,所述方法應(yīng)用于數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包含任務(wù)控制器、數(shù)據(jù)處理器及存儲(chǔ)空間,所述存儲(chǔ)空間用于存儲(chǔ)配置隊(duì)列數(shù)據(jù),所述配置隊(duì)列數(shù)據(jù)用于對(duì)所述數(shù)據(jù)處理器進(jìn)行配置,所述方法包括:
3、當(dāng)接收到處理器下發(fā)的數(shù)據(jù)處理任務(wù)時(shí),所述任務(wù)控制器根據(jù)所述數(shù)據(jù)處理任務(wù)及所述存儲(chǔ)空間中存儲(chǔ)的配置隊(duì)列數(shù)據(jù),確定所述數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的配置參數(shù);
4、所述任務(wù)控制器根據(jù)所述數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的配置參數(shù),對(duì)所述數(shù)據(jù)處理器的控制寄存器執(zhí)行配置操作,并在配置完成后,根據(jù)所述數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的配置參數(shù),控制所述數(shù)據(jù)處理器的執(zhí)行單元執(zhí)行與所述數(shù)據(jù)處理任務(wù)相匹配的數(shù)據(jù)處理操作。
5、本發(fā)明實(shí)施例第二方面公開了一種基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的系統(tǒng),所述系統(tǒng)包含任務(wù)控制器、數(shù)據(jù)處理器及存儲(chǔ)空間,所述存儲(chǔ)空間用于存儲(chǔ)配置隊(duì)列數(shù)據(jù),所述配置隊(duì)列數(shù)據(jù)用于對(duì)所述數(shù)據(jù)處理器進(jìn)行配置,其中:
6、所述任務(wù)控制器,用于當(dāng)接收到處理器下發(fā)的數(shù)據(jù)處理任務(wù)時(shí),根據(jù)所述數(shù)據(jù)處理任務(wù)及所述存儲(chǔ)空間中存儲(chǔ)的配置隊(duì)列數(shù)據(jù),確定所述數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的配置參數(shù);以及根據(jù)所述數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的配置參數(shù),對(duì)所述數(shù)據(jù)處理器的控制寄存器執(zhí)行配置操作,并在配置完成后,根據(jù)所述數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的配置參數(shù),控制所述數(shù)據(jù)處理器的執(zhí)行單元執(zhí)行與所述數(shù)據(jù)處理任務(wù)相匹配的數(shù)據(jù)處理操作。
7、本發(fā)明第三方面公開了一種基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的系統(tǒng),所述系統(tǒng)應(yīng)用于數(shù)據(jù)處理系統(tǒng),且所述系統(tǒng)包括:
8、存儲(chǔ)有可執(zhí)行程序代碼的存儲(chǔ)器;
9、與所述存儲(chǔ)器耦合的處理器;
10、所述處理器調(diào)用所述存儲(chǔ)器中存儲(chǔ)的所述可執(zhí)行程序代碼,執(zhí)行本發(fā)明第一方面公開的任意一種基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法中部分或全部步驟。
11、本發(fā)明第四方面公開了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令被調(diào)用時(shí),用于執(zhí)行本發(fā)明第一方面公開的任意一種基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法中部分或全部步驟。
12、與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例具有以下有益效果:
13、本發(fā)明實(shí)施例中,公開了一種基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法及系統(tǒng),預(yù)先將需要對(duì)數(shù)據(jù)處理器的控制寄存器更新所需的配置參數(shù)提前保存在存儲(chǔ)空間,當(dāng)接收到處理器下發(fā)的數(shù)據(jù)處理任務(wù)時(shí),根據(jù)數(shù)據(jù)處理任務(wù)及存儲(chǔ)空間中存儲(chǔ)的配置隊(duì)列數(shù)據(jù),確定數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的配置參數(shù);以及根據(jù)數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的配置參數(shù),對(duì)數(shù)據(jù)處理器的控制寄存器執(zhí)行配置操作,并在配置完成后,根據(jù)數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的配置參數(shù),控制數(shù)據(jù)處理器的執(zhí)行單元執(zhí)行與數(shù)據(jù)處理任務(wù)相匹配的數(shù)據(jù)處理操作??梢姡景l(fā)明實(shí)施例通過提前將多個(gè)任務(wù)的寄存器配置參數(shù)存放于內(nèi)部存儲(chǔ)空間中,當(dāng)檢測(cè)到有任務(wù)下發(fā)時(shí),硬件在處理任務(wù)前先通過內(nèi)部存儲(chǔ)空間讀回配置隊(duì)列數(shù)據(jù)對(duì)所下發(fā)的任務(wù)進(jìn)行解析,在完成對(duì)內(nèi)部控制寄存器的配置更新后,并根據(jù)更新后的配置處理完當(dāng)前任務(wù)后去執(zhí)行新的任務(wù),這樣可以在不增加控制寄存器的情況下,能夠減少由于處理器中斷響應(yīng)不及時(shí)而產(chǎn)生的任務(wù)間隙的發(fā)生情況,從而減少處理器由于空等而帶來的性能損失,提高運(yùn)算邏輯的資源利用率,進(jìn)而提升處理器性能;以及通過提前將多個(gè)任務(wù)的寄存器配置參數(shù)存放于內(nèi)部存儲(chǔ)空間中,在不增加硬件資源(如硬件面積)的情況下,數(shù)據(jù)處理器的執(zhí)行單元能達(dá)到硬件性能的上限,提高執(zhí)行單元的性能利用率的同時(shí)節(jié)省成本。
1.一種基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法,其特征在于,所述方法應(yīng)用于數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包含任務(wù)控制器、數(shù)據(jù)處理器及存儲(chǔ)空間,所述存儲(chǔ)空間用于存儲(chǔ)配置隊(duì)列數(shù)據(jù),所述配置隊(duì)列數(shù)據(jù)用于對(duì)所述數(shù)據(jù)處理器進(jìn)行配置,所述方法包括:
2.根據(jù)權(quán)利要求1所述的基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法,其特征在于,所述任務(wù)控制器根據(jù)所述數(shù)據(jù)處理任務(wù)及所述存儲(chǔ)空間中存儲(chǔ)的配置隊(duì)列數(shù)據(jù),確定所述數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的配置參數(shù),包括:
3.根據(jù)權(quán)利要求2所述的基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法,其特征在于,所述數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的頭部信息包括頭部地址;
4.根據(jù)權(quán)利要求2或3所述的基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法,其特征在于,所述任務(wù)控制器包括線程控制寄存器、任務(wù)管理器及命令隊(duì)列解析器,所述線程控制寄存器與所述任務(wù)管理器之間通過線程進(jìn)行對(duì)接,且所述線程控制寄存器對(duì)應(yīng)的線程存在對(duì)應(yīng)的命令隊(duì)列和任務(wù)隊(duì)列;
5.根據(jù)權(quán)利要求4所述的基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法,其特征在于,所述線程控制寄存器與所述任務(wù)管理器之間的線程數(shù)量大于等于1,所有所述線程之間互不干擾,每條所述線程存在唯一對(duì)應(yīng)的命令隊(duì)列及唯一對(duì)應(yīng)的任務(wù)隊(duì)列,所述數(shù)據(jù)處理任務(wù)包括多個(gè)子任務(wù);
6.根據(jù)權(quán)利要求4所述的基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法,其特征在于,所述線程控制寄存器與所述任務(wù)管理器之間的線程數(shù)量大于等于1,所有所述線程之間互不干擾,每條所述線程存在唯一對(duì)應(yīng)的命令隊(duì)列及唯一對(duì)應(yīng)的任務(wù)隊(duì)列,所述數(shù)據(jù)處理任務(wù)包括多個(gè)子任務(wù);
7.根據(jù)權(quán)利要求5或6所述的基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法,其特征在于,每個(gè)所述子任務(wù)包含至少一個(gè)命令,所述數(shù)據(jù)處理任務(wù)對(duì)應(yīng)的頭部信息包括所有所述子任務(wù)的頭部信息,每個(gè)所述子任務(wù)對(duì)應(yīng)的頭部信息包含該子任務(wù)的所有所述命令中排序第一的命令的頭部地址和每個(gè)所述命令對(duì)應(yīng)的下一個(gè)命令的頭部長(zhǎng)度;
8.根據(jù)權(quán)利要求7所述的基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法,其特征在于,所述方法還包括:
9.根據(jù)權(quán)利要求1-8任一項(xiàng)所述的基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的方法,其特征在于,所述配置隊(duì)列數(shù)據(jù)由多個(gè)頭部中每個(gè)所述頭部的數(shù)據(jù)及該頭部唯一對(duì)應(yīng)的主體塊的數(shù)據(jù)組成;
10.一種基于配置隊(duì)列數(shù)據(jù)進(jìn)行任務(wù)處理的系統(tǒng),其特征在于,所述系統(tǒng)包含任務(wù)控制器、數(shù)據(jù)處理器及存儲(chǔ)空間,所述存儲(chǔ)空間用于存儲(chǔ)配置隊(duì)列數(shù)據(jù),所述配置隊(duì)列數(shù)據(jù)用于對(duì)所述數(shù)據(jù)處理器進(jìn)行配置,其中: