專利名稱:多核dsp及其系統(tǒng)和調(diào)度器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體涉及多核數(shù)字信號處理器(DSP),更具體地,涉及一種基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器。
背景技術(shù):
為了突破單核數(shù)字信號處理器處理能力的極限,近來,多核數(shù)字信號處理器得到了人們的廣泛關(guān)注和普遍使用。由于多核數(shù)字信號處理器具有可以進行并行處理的兩個以上的內(nèi)核,其在單位時間內(nèi)能夠處理的指令數(shù)相應(yīng)的可以達到單核數(shù)字信號處理器的幾倍,故而同單核數(shù)字信號處理器相比其處理能力得到了質(zhì)的飛躍。在現(xiàn)有技術(shù)中,當(dāng)使用多核數(shù)字信號處理器時,采用以下兩種架構(gòu)。架構(gòu)I :使一個任務(wù)運行在多核數(shù)字信號處理器的所有內(nèi)核上?!ぜ軜?gòu)2 :使一個任務(wù)運行在多核數(shù)字信號處理器的單個內(nèi)核上。圖I示出了采用架構(gòu)I的多核數(shù)字信號處理器對內(nèi)核資源和存儲器資源的使用。
由圖I可見,多核數(shù)字信號處理器包括η個內(nèi)核,內(nèi)核O、內(nèi)核I、內(nèi)核2、......內(nèi)核η-1。
每個任務(wù)(任務(wù)O、任務(wù)I和任務(wù)2)都運行在所有內(nèi)核上。每個內(nèi)核單獨使用專用存儲器,并且與其他內(nèi)核共享使用共享存儲器。采用該架構(gòu),單個任務(wù)可以使用所有內(nèi)核的資源以極快的速度運行;并且由于單個任務(wù)被分配給所有內(nèi)核運行的特質(zhì),核間負載始終保持平衡。然而,由于并非所有任務(wù)都能夠完全并行的運行,需要設(shè)置任務(wù)終止邊界。另外,由于某些任務(wù)需要先在單個內(nèi)核上運行再在所有內(nèi)核上并行運行,需要設(shè)置其他內(nèi)核的任務(wù)起始邊界。正如圖I所示,任務(wù)O、任務(wù)I、任務(wù)2的運行并非是完全并行的,因而針對每個任務(wù)設(shè)置了任務(wù)終止邊界;任務(wù)I需要先在內(nèi)核η-I上運行再在所有內(nèi)核上并行運行,因而設(shè)置了其他內(nèi)核的任務(wù)起始邊界。由圖I可以直觀的觀察到,任務(wù)邊界的設(shè)置將造成處理時間的延遲,導(dǎo)致內(nèi)核處理資源的浪費。同時,采用架構(gòu)I的多核數(shù)字信號處理器的所有內(nèi)核需要共享代碼和數(shù)據(jù),占用大量的共享存儲空間。并且,由于共享存儲器的存取速度通常比專用存儲器慢,采用架構(gòu)I的多核數(shù)字信號處理器的任務(wù)處理速度將受到存儲器存取速度的制約。圖2示出了采用架構(gòu)2的多核數(shù)字信號處理器對內(nèi)核資源和存儲器資源的使用。
由圖2可見,多核數(shù)字信號處理器包括η個內(nèi)核,內(nèi)核O、內(nèi)核I、內(nèi)核2、......內(nèi)核η-1。
每個任務(wù)(任務(wù)O、任務(wù)I、任務(wù)2和任務(wù)3)只運行在單個內(nèi)核上。每個內(nèi)核單獨使用專用存儲器,并且與其他內(nèi)核共享使用共享存儲器。由于架構(gòu)2無需設(shè)置任務(wù)邊界,內(nèi)核能夠連續(xù)地執(zhí)行任務(wù)處理,減少內(nèi)核周期的浪費。正如圖2所示,內(nèi)核O連續(xù)地運行任務(wù)O和任務(wù)3,在任務(wù)運行期間,內(nèi)核O不存在空閑期。同時,當(dāng)單個內(nèi)核運行單個任務(wù)時,可以使用專用存儲器來存儲數(shù)據(jù),從而提高了數(shù)據(jù)存取速度進而提高了任務(wù)處理速度,并且還能夠節(jié)省共享存儲器的資源。
然而,架構(gòu)2也存在極大的弊端。首先,架構(gòu)2不具備架構(gòu)I固有的核間負載平衡機制,需要進行專門的負載測量并采用任務(wù)調(diào)度算法才能實現(xiàn)核間負載平衡。其次,某些任務(wù)(特別是電信系統(tǒng)中實時性要求較強的任務(wù))對處理能力的要求(通常以單位時間需要處理的指令數(shù)來度量)是無法由單個內(nèi)核滿足的,采用架構(gòu)2的多核數(shù)字信號處理器無法處理此類任務(wù)。在圖2中,以內(nèi)核I無法容納任務(wù)I直觀地示意了這種不利情況。由上可見,采用架構(gòu)I和架構(gòu)2的多核數(shù)字信號處理器各存利弊,并且它們的優(yōu)缺點本質(zhì)上由其采用的架構(gòu)決定。另外,從多核數(shù)字信號處理器對存儲器的使用來看。在現(xiàn)有系統(tǒng)中,只存在全體共享和單獨專用兩種方式。全體共享方式指,存儲器由多核數(shù)字信號處理器的所有內(nèi)核共享。單獨專用方式指,存儲器由單個內(nèi)核占用。這種全體共享和單獨專用二選一的使用方式是缺乏靈活性的。此外,代碼始終放置在所有內(nèi)核都能夠訪問共享存儲器中。這導(dǎo)致大量的共享存儲空間被占用,并且由于共享存儲器的內(nèi)容可以十分容易地被所有內(nèi)核修改,存在極大的安全隱患
發(fā)明內(nèi)容
·本發(fā)明的目的在于,設(shè)計一種比現(xiàn)有技術(shù)中的架構(gòu)I和架構(gòu)2更加靈活的多核數(shù)字信號處理器架構(gòu),解決上述技術(shù)問題中的至少某些問題。根據(jù)本發(fā)明的第一方面,提出了一種多核數(shù)字信號處理器,其特征在于所述多核數(shù)字信號處理器的全部內(nèi)核資源被分配至多個子系統(tǒng),其中,所述多個子系統(tǒng)中的至少一個子系統(tǒng)被分配了兩個以上的內(nèi)核的內(nèi)核資源。優(yōu)選地,所述多個子系統(tǒng)中的至少一個子系統(tǒng)可以被分配所有內(nèi)核的內(nèi)核資源。此外,可以動態(tài)調(diào)整所述子系統(tǒng)的內(nèi)核資源分配。優(yōu)選地,所述多核數(shù)字信號處理器使用共享存儲器和專用存儲器。所述共享存儲器的存儲資源可以被劃分并分配至所述多個子系統(tǒng)中的多核子系統(tǒng)。所述專用存儲器的存儲資源可以被分配至所述多個子系統(tǒng)中的單核子系統(tǒng)和/或多核子系統(tǒng)。根據(jù)本發(fā)明的第二方面,還提出了一種使用多核數(shù)字信號處理器的系統(tǒng),包括內(nèi)核資源被分配至多個子系統(tǒng)的多核數(shù)字信號處理器;共享存儲器;以及專用存儲器。優(yōu)選地,所述共享存儲器的存儲資源可以被劃分并分配至所述多個子系統(tǒng)中的多核子系統(tǒng)。所述專用存儲器的存儲資源可以被分配至所述多個子系統(tǒng)中的單核子系統(tǒng)和/或多核子系統(tǒng)。所述專用存儲器可以是在所述共享存儲器中定義的專用部分。根據(jù)本發(fā)明的第三方面,提出了一種用于對多核數(shù)字信號處理器的內(nèi)核資源進行調(diào)度的調(diào)度器,包括最大資源需求估計單元,用于估計任務(wù)在執(zhí)行過程中所需的最大內(nèi)核資源;內(nèi)核負載測量單元,用于測量內(nèi)核資源是處于使用狀態(tài)還是處于空閑狀態(tài);子系統(tǒng)選擇單元,用于基于最大資源需求估計單元估計的結(jié)果以及內(nèi)核負載測量單元測量的結(jié)果,根據(jù)預(yù)定策略,選擇有能力執(zhí)行該任務(wù)并且處于空閑狀態(tài)的子系統(tǒng);以及分配單元,用于將子系統(tǒng)選擇單元所選擇的子系統(tǒng)分配用于執(zhí)行所述任務(wù)。優(yōu)選地,所述調(diào)度器還包括資源需求實時估計單元,用于實時估計任務(wù)在執(zhí)行過程中所需的內(nèi)核資源;以及子系統(tǒng)內(nèi)核資源調(diào)整單元,用于根據(jù)資源需求實時估計單元估計的內(nèi)核資源需求量,調(diào)整子系統(tǒng)的內(nèi)核資源分配。所述預(yù)定策略可以包括以下至少一項任務(wù)平均等待時間最短;高優(yōu)先級任務(wù)優(yōu)先執(zhí)行;核間負載平衡;以及內(nèi)核資源利用率最大化。本發(fā)明提出的基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器克服了現(xiàn)有技術(shù)中采用架構(gòu)I和架構(gòu)2的多核數(shù)字信號處理器的缺陷。
通過下面結(jié)合
本發(fā)明的優(yōu)選實施例,將使本發(fā)明的上述及其它目的、特征和優(yōu)點更加清楚,其中圖I示出了根據(jù)現(xiàn)有技術(shù)的采用架構(gòu)I的多核數(shù)字信號處理器對內(nèi)核資源和存儲器資源的使用;圖2示出了根據(jù)現(xiàn)有技術(shù)的采用架構(gòu)2的多核數(shù)字信號處理器對內(nèi)核資源和存儲器資源的使用; 圖3是示出了根據(jù)本發(fā)明的第一實施例的、基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器的內(nèi)核資源分配的示意圖;圖4是示出了根據(jù)本發(fā)明第一實施例的、多核數(shù)字信號處理器在運行時的子系統(tǒng)使用情況的不意圖;圖5是示出了根據(jù)本發(fā)明的第二實施例的、基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器的內(nèi)核資源分配的示意圖;圖6是示出了根據(jù)本發(fā)明第二實施例的、多核數(shù)字信號處理器在運行時的子系統(tǒng)使用情況的不意圖;圖7是示出了在使用多核子系統(tǒng)執(zhí)行內(nèi)核資源需求隨時間改變的任務(wù)時造成內(nèi)核資源浪費的情況的示意圖;圖8是示出了子系統(tǒng)的內(nèi)核資源分配隨任務(wù)所需的內(nèi)核資源量動態(tài)調(diào)整的示意圖;圖9是示出了根據(jù)本發(fā)明第一實施例的多核數(shù)字信號處理器的子系統(tǒng)與存儲器資源的映射關(guān)系的不意圖;圖10是示出了采用根據(jù)本發(fā)明實施例的多核數(shù)字信號處理器的計算系統(tǒng)的示意框圖;以及圖11是示出了圖10所示的調(diào)度器的具體配置的框圖。
具體實施例方式下面參照附圖對本發(fā)明的優(yōu)選實施例進行詳細說明,在描述過程中省略了對于本發(fā)明來說是不必要的細節(jié)和功能,以防止對本發(fā)明的理解造成混淆。以下以6核數(shù)字信號處理器為例描述本發(fā)明的各個實施例。然而,所屬領(lǐng)域技術(shù)人員將意識到,本發(fā)明的實現(xiàn)不依賴于多核數(shù)字信號處理器內(nèi)核的具體數(shù)量。相反,任意內(nèi)核數(shù)量的多核數(shù)字信號處理器都適于采用本發(fā)明的原理。圖3是示出了根據(jù)本發(fā)明第一實施例的、基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器的內(nèi)核資源分配的示意圖。如圖3所示,多核數(shù)字信號處理器包括6個內(nèi)核,內(nèi)核O、內(nèi)核
I、內(nèi)核2、......內(nèi)核5。這6個內(nèi)核的資源被分配至8個子系統(tǒng),子系統(tǒng)O、子系統(tǒng)I、子系統(tǒng)2、子系統(tǒng)3.......子系統(tǒng)7。每個任務(wù)在單個子系統(tǒng)上運行。具體地,一方面,多核數(shù)字信號處理器的每個內(nèi)核(內(nèi)核O、內(nèi)核I、內(nèi)核
2、......內(nèi)核5)的內(nèi)核資源分別被分配至子系統(tǒng)I、子系統(tǒng)2、子系統(tǒng)3、子系統(tǒng)4、子系統(tǒng)
5和子系統(tǒng)7 ;另一方面,多核數(shù)字信號處理器的內(nèi)核O和內(nèi)核I的內(nèi)核資源被分配至子系統(tǒng)O,從而子系統(tǒng)O適于處理資源需求較高的需要由2個內(nèi)核完成的任務(wù);內(nèi)核2、內(nèi)核3和內(nèi)核4的內(nèi)核資源被分配至子系統(tǒng)6,從而子系統(tǒng)6適于處理資源需求較高的需要由3個內(nèi)核完成的任務(wù)。采用上述分配方式,由于單個內(nèi)核可能被分配至兩個以上的子系統(tǒng)(例如,內(nèi)核O既可被分配至子系統(tǒng)I又可被分配至子系統(tǒng)O),在多核數(shù)字信號處理器的實際運行 期間,對應(yīng)于同一內(nèi)核的多個子系統(tǒng)(例如,對應(yīng)于內(nèi)核O的子系統(tǒng)O和子系統(tǒng)I)不能同時存在。由上可見,由于專門針對無法由一個內(nèi)核完成的任務(wù)設(shè)計了適于其資源需求的子系統(tǒng),而并非使單個任務(wù)運行在所有內(nèi)核上或使單個任務(wù)僅僅運行在單個內(nèi)核上,采用基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器同采用架構(gòu)I的多核數(shù)字信號處理器相比使用起來更加靈活,而同采用架構(gòu)2的多核數(shù)字信號處理器相比又能夠處理無法由單個內(nèi)核完成的任務(wù)。應(yīng)當(dāng)理解的是,雖然以上給出了多核數(shù)字信號處理器內(nèi)核資源的一種具體分配方式,但對所屬領(lǐng)域技術(shù)人員而言顯而易見地還存在其他分配方式。事實上,基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器的資源分配只需滿足以下條件分配形成的多個子系統(tǒng)中的至少一個子系統(tǒng)具有兩個以上的內(nèi)核的內(nèi)核資源。以圖3為例,子系統(tǒng)O具有內(nèi)核O和內(nèi)核I的內(nèi)核資源,子系統(tǒng)6具有內(nèi)核3至內(nèi)核5的內(nèi)核資源。圖4是示出了根據(jù)本發(fā)明第一實施例的、多核數(shù)字信號處理器在運行時的子系統(tǒng)使用情況的示意圖,其中,橫軸表示時間。如圖4所示,在時段t0至t2期間,使用子系統(tǒng)O執(zhí)行任務(wù)O ;在時刻t2以后,分別使用子系統(tǒng)I和子系統(tǒng)2執(zhí)行任務(wù)I和2 ;在時段t0至tl期間,分別使用子系統(tǒng)3、子系統(tǒng)4和子系統(tǒng)5執(zhí)行任務(wù)3、任務(wù)4和任務(wù)5 ;在時刻tl以后,使用子系統(tǒng)6執(zhí)行任務(wù)6 ;從時刻t0起,使用子系統(tǒng)7執(zhí)行任務(wù)7??紤]到多核數(shù)字信號處理器的實際使用中常需要執(zhí)行諸如ISR(中斷服務(wù)程序,Interrupt Service Routine)、消息處理和調(diào)試程序等需要所有內(nèi)核參與的公共功能,優(yōu)選地,可以定義圖5中所示的使用多核數(shù)字信號處理器中所有內(nèi)核的子系統(tǒng)。圖5示出了根據(jù)本發(fā)明第二實施例的、基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器的內(nèi)核資源分配的示意圖,其中,多核數(shù)字信號處理器的內(nèi)核資源分配方式與圖3所示的分配方式基本相同,只不過所有內(nèi)核資源還被分配至一個新的子系統(tǒng)8,子系統(tǒng)8設(shè)計用于執(zhí)行需要所有內(nèi)核參與的公共功能。圖6示出了根據(jù)本發(fā)明第二實施例的、多核數(shù)字信號處理器在運行時的子系統(tǒng)使用情況的示意圖,其中,橫軸表示時間。圖6與圖4的區(qū)別在于,從時刻T起,使用子系統(tǒng)8執(zhí)行任務(wù)8。此外,考慮到任務(wù)所需的內(nèi)核資源常常是隨時間改變的,有些任務(wù)起初需要多個內(nèi)核的資源才能執(zhí)行,但經(jīng)過一段時間需求下降,甚至僅需單個內(nèi)核的資源。如果以上述多核子系統(tǒng)來執(zhí)行該任務(wù),將會造成內(nèi)核資源的嚴重浪費。圖7示出了這種情況。如圖7所示,任務(wù)O和任務(wù)6的內(nèi)核資源需求量隨時間變化,以上述多核子系統(tǒng)來執(zhí)行該任務(wù)時,為子系統(tǒng)O和子系統(tǒng)6分配的內(nèi)核資源沒有得到充分利用。為了進一步提高內(nèi)核資源的利用率,作為進一步的改進,可以根據(jù)任務(wù)所需的內(nèi)核資源量,動態(tài)調(diào)整子系統(tǒng)的內(nèi)核資源分配。具體的調(diào)整方式將于稍后進行詳細說明。圖8示出了子系統(tǒng)的內(nèi)核資源分配隨任務(wù)所需的內(nèi)核資源量動態(tài)調(diào)整的示意圖。如圖8所示,任務(wù)O和任務(wù)6的內(nèi)核資源需求量隨時間變化,運行任務(wù)O和任務(wù)6的子系統(tǒng)O和6的內(nèi)核資源分配也隨時間發(fā) 生相應(yīng)的變化,從而子系統(tǒng)2、子系統(tǒng)3和子系統(tǒng)4中的任務(wù)得以運行更長的時間,內(nèi)核資源的使用效率更高。為了解決背景技術(shù)中所述的、現(xiàn)有技術(shù)中多核數(shù)字信號處理器對存儲器資源的使用存在的若干問題。本發(fā)明還提出了按照上述分配方式形成的子系統(tǒng)與存儲器資源間的映射關(guān)系。一般地,規(guī)定必須為使用多核資源的子系統(tǒng)分配共享存儲器資源,而不為僅使用單核資源的子系統(tǒng)分配共享存儲器資源。該規(guī)定主要是基于以下考慮多核子系統(tǒng)需要共享存儲器資源來進行核間通信和作為任務(wù)的輸入/輸出緩沖區(qū),單核子系統(tǒng)不需要進行核間通信。然而,上述規(guī)定并非是限制性的,基于其他考慮,還可以對上述規(guī)定加以補充。例如,考慮到多核子系統(tǒng)還需要進行核內(nèi)通信,有時需要存儲關(guān)鍵的表和/或一定的緩沖區(qū),還可以為多核子系統(tǒng)分配專用存儲器資源。當(dāng)然,多核子系統(tǒng)也可以僅使用共享存儲器。圖9是示出了根據(jù)本發(fā)明第一實施例的多核數(shù)字信號處理器的子系統(tǒng)與存儲器資源的映射關(guān)系的示意圖。如圖9所示,多核數(shù)字信號處理器的存儲資源包括共享存儲器和專用存儲器資源,其中,共享存儲器可由兩個以上的內(nèi)核共享,而專用存儲器是每個內(nèi)核專用的。具體地,在圖9中,共享存儲器被劃分為兩部分,并分別被分配至需要進行核間通信的雙核子系統(tǒng)O和3核子系統(tǒng)6,未對子系統(tǒng)O分配專用存儲器資源,但對子系統(tǒng)6分配了與內(nèi)核2、內(nèi)核3和內(nèi)核4相關(guān)聯(lián)的專用存儲器資源。對單核子系統(tǒng)I、子系統(tǒng)2、子系統(tǒng)
3、子系統(tǒng)4、子系統(tǒng)5和子系統(tǒng)7分配了專用存儲器資源。此外,還可以在專用存儲器資源中為每個內(nèi)核分配堆棧所用的存儲器資源。由于基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器將共享存儲器進行了劃分并分配至不同的子系統(tǒng),子系統(tǒng)間無法修改彼此的代碼,因而同采用架構(gòu)I的多核數(shù)字信號處理器的對共享存儲器資源的使用方式相比安全性更高。此外,由于上述架構(gòu)的多核數(shù)字信號處理器規(guī)定不為僅使用單核資源的子系統(tǒng)分配共享存儲器資源,可以節(jié)省共享存儲資源,并且可以提高存取速度,進而提高任務(wù)處理速度。以上與每個內(nèi)核相關(guān)聯(lián)的物理專用存儲器可以是芯片上存儲器,如L1/L2高速緩存。芯片上存儲器始終具有極快的存取速度,但其容量較小,無法滿足某些任務(wù)對存儲容量的需要。為滿足存儲容量需求,專用存儲器還包括在共享存儲器中定義的專用部分。以上可由多個內(nèi)核共享的物理共享存儲器可以是芯片上共享存儲器和某些板上存儲器,如DDR(DoubIe Data Rate,雙倍速)存儲器。板上存儲器容量極大,可以滿足任何任務(wù)的存儲容量需求。如上所述,還可在其上定義專用部分,作為多核數(shù)字信號處理器的專用存儲器。本發(fā)明的多核處理器及其對存儲器資源的映射關(guān)系除了能夠克服背景技術(shù)中所述的現(xiàn)有技術(shù)存在的缺陷,還使得單個任務(wù)的程序設(shè)計人員在設(shè)計程序時僅需專注于單個子系統(tǒng),而不是整個多核DSP,降低了程序設(shè)計的難度。由于采用了不同于現(xiàn)有技術(shù)的架構(gòu),根據(jù)本發(fā)明的多核數(shù)字信號處理器的任務(wù)調(diào)度方法相應(yīng)地與現(xiàn)有技術(shù)有所不同。以下,將詳細介紹根據(jù)本發(fā)明的基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器的調(diào)度方法。圖10是示出了采用根據(jù)本發(fā)明實施例的多核數(shù)字信號處理器的計算系統(tǒng)1000的示意框圖。如圖10可見,計算系統(tǒng)1000包括任務(wù)隊列1010、調(diào)度器1020和內(nèi)核資源1030,其中,調(diào)度器1020負責(zé)調(diào)度適當(dāng)?shù)膬?nèi)核資源1030以處理任務(wù)隊列中的任務(wù)。由圖10可見,與現(xiàn)有技術(shù)最大的區(qū)別在于,采用根據(jù)本發(fā)明實施例的多核數(shù)字信號處理器的計算系統(tǒng)1000的調(diào)度器1020調(diào)度的最小單位是子系統(tǒng),而不是內(nèi)核。以根據(jù)本發(fā)明第一實施例的8子系統(tǒng)的6核處理器為例,圖10中的內(nèi)核資源1030部分包括可供調(diào)度的8個子系統(tǒng)子系統(tǒng)O 子系統(tǒng)7。為清楚起見,根據(jù)針對子系統(tǒng)分配的內(nèi)核資源數(shù)目(即子系統(tǒng)的處理能力等級),子系統(tǒng)O 子系統(tǒng)7被排列成3列,第I列中的子系統(tǒng)I、子系統(tǒng)2、子系統(tǒng)3、子系統(tǒng)4、子系統(tǒng)5和子系統(tǒng)7為單核子系統(tǒng),第2列中的子系統(tǒng)O為雙核子系統(tǒng),第3列中的子系統(tǒng)6為3核子系統(tǒng)。圖11進一步示出了圖10所示的調(diào)度器1020的具體配置。如圖11所示,調(diào)度器·1020應(yīng)至少包括最大資源需求估計單元1110,用于估計任務(wù)在執(zhí)行過程中所需的最大內(nèi)核資源;內(nèi)核負載測量單元1120,用于測量內(nèi)核資源是處于使用狀態(tài)還是處于空閑狀態(tài);子系統(tǒng)選擇單元1130,用于基于最大資源需求估計單元1110估計的結(jié)果以及內(nèi)核負載測量單元1120測量的結(jié)果,根據(jù)預(yù)定策略,選擇有能力執(zhí)行該任務(wù)并且處于空閑狀態(tài)的子系統(tǒng);以及分配單元1140,用于將子系統(tǒng)選擇單元1130所選擇的子系統(tǒng)分配用于執(zhí)行該任務(wù)。采用具有該配置的調(diào)度器可以對根據(jù)本發(fā)明第一實施例和第二實施例的、基于子系統(tǒng)架構(gòu)的多核數(shù)字信號處理器的內(nèi)核資源進行調(diào)度。圖4所示的根據(jù)本發(fā)明第一實施例的多核數(shù)字信號處理器在運行時的子系統(tǒng)使用情況的示意圖即可看作調(diào)度器的調(diào)度結(jié)果。由圖4可見,從內(nèi)核資源使用率的角度看,該調(diào)度結(jié)果是最佳的。然而,考慮其他因素(如任務(wù)平均等待時間最短、高優(yōu)先級任務(wù)優(yōu)先執(zhí)行、核間負載平衡等),子系統(tǒng)選擇單元1130可以采用不同的預(yù)定策略,針對同一任務(wù)選擇不同的子系統(tǒng),進而產(chǎn)生不同的調(diào)度結(jié)果。圖4的調(diào)度結(jié)果的產(chǎn)生過程如下。假設(shè)在時刻t0,任務(wù)O至任務(wù)7依次排列在任務(wù)隊列中等待處理。其中,任務(wù)O、任務(wù)3、任務(wù)4、任務(wù)5和任務(wù)7具有高優(yōu)先級,任務(wù)I、任務(wù)2和任務(wù)6次之。調(diào)度器中的最大資源需求估計單元1110估計各個任務(wù)所需的最大內(nèi)核資源,得知任務(wù)O需要2個內(nèi)核的內(nèi)核資源,任務(wù)I至任務(wù)5和任務(wù)7分別需要I個內(nèi)核的內(nèi)核資源,任務(wù)6需要3個內(nèi)核的內(nèi)核資源。內(nèi)核負載測量單元1120測量內(nèi)核資源是處于使用狀態(tài)還是處于空閑狀態(tài),得知全部內(nèi)核處于空閑狀態(tài)。子系統(tǒng)選擇單元1130基于最大資源需求估計單元1110估計的結(jié)果以及內(nèi)核負載測量單元1120測量的結(jié)果,根據(jù)先執(zhí)行優(yōu)先級高的任務(wù)的策略,選擇子系統(tǒng)O執(zhí)行任務(wù)0,子系統(tǒng)3至子系統(tǒng)5分別執(zhí)行任務(wù)3至任務(wù)5,子系統(tǒng)7執(zhí)行任務(wù)7。至?xí)r刻tl,任務(wù)3至任務(wù)5完成,再度出現(xiàn)空閑的內(nèi)核資源,此時任務(wù)隊列中的待處理任務(wù)為任務(wù)I、任務(wù)2和任務(wù)6。內(nèi)核負載測量單元1120測量得知內(nèi)核2至內(nèi)核4處于空閑狀態(tài)。子系統(tǒng)選擇單元1130基于最大資源需求估計單元1110估計的結(jié)果以及內(nèi)核負載測量單元1120測量的結(jié)果,根據(jù)最大化內(nèi)核資源使用率的策略,選擇子系統(tǒng)6執(zhí)行任務(wù)6。
至?xí)r刻t2,任務(wù)O完成,再度出現(xiàn)空閑的內(nèi)核資源,此時任務(wù)隊列中的待處理任務(wù)為任務(wù)I和任務(wù)2。內(nèi)核負載測量單元1120測量得知內(nèi)核O和內(nèi)核I處于空閑狀態(tài)。子系統(tǒng)選擇單元1130基于最大資源需求估計單元1110估計的結(jié)果以及內(nèi)核負載測量單元1120測量的結(jié)果,選擇子系統(tǒng)I和子系統(tǒng)2分別執(zhí)行任務(wù)I和任務(wù)2。為了實現(xiàn)如上所述的、根據(jù)任務(wù)所需的內(nèi)核資源量動態(tài)調(diào)整子系統(tǒng)的內(nèi)核資源分配的進一步的改進。圖11所示的調(diào)度器還可以包括資源需求實時估計單元1150,用于實時估計任務(wù)在執(zhí)行過程中所需的內(nèi)核資源;以及子系統(tǒng)內(nèi)核資源調(diào)整單元1160,用于根據(jù)資源需求實時估計單元估計的內(nèi)核資源需求量,調(diào)整子系統(tǒng)的內(nèi)核資源分配。從而,可以實現(xiàn)如圖8中子系統(tǒng)O的資源分配調(diào)整。具體而言,資源需求實時估計單元1150在時刻t2’實時估計出任務(wù)O僅需I個內(nèi)核的內(nèi)核資源。子系統(tǒng)內(nèi)核資源調(diào)整單元1160根據(jù)該估計結(jié)果,將子系統(tǒng)O的內(nèi)核資源分配調(diào)整為只使用內(nèi)核O的內(nèi)核資源。從而,內(nèi)核I的內(nèi)核資源變?yōu)榭臻e,并可用于執(zhí)行其他任務(wù)。 優(yōu)選地,調(diào)度器還包括任務(wù)執(zhí)行時間估計單元1160,用于估計任務(wù)執(zhí)行所需的時間;并且資源需求實時估計單元1150能夠估計子系統(tǒng)中各內(nèi)核的空閑時段。從而,可以實現(xiàn)如圖8中子系統(tǒng)6的資源分配調(diào)整。具體而言,任務(wù)執(zhí)行時間估計單元1160估計出任務(wù)3和任務(wù)4的執(zhí)行所需時間分別為t0至tl”和t0至tl’,并且資源需求實時估計單元1150估計出子系統(tǒng)6中內(nèi)核2的空閑時段為內(nèi)核3的空閑時段為tl’-tl。從而,子系統(tǒng)6的內(nèi)核資源分配可以按以下方式調(diào)整在時段tl至tl’,僅使用內(nèi)核4的內(nèi)核資源;在時段tl’至tl”,僅使用內(nèi)核3和內(nèi)核4的內(nèi)核資源;在時刻tl”以后,使用內(nèi)核3至內(nèi)核5的內(nèi)核資源。從而,內(nèi)核2至內(nèi)核4的內(nèi)核資源的利用率可以達到最大化。在以上的描述中,針對各個步驟,列舉了多個實例,雖然發(fā)明人盡可能地標示出彼此關(guān)聯(lián)的實例,但這并不意味著這些實例必然按照相應(yīng)的標號存在對應(yīng)關(guān)系。只要所選擇的實例所給定的條件間不存在矛盾,可以在不同的步驟中,選擇標號并不對應(yīng)的實例來構(gòu)成相應(yīng)的技術(shù)方案,這樣的技術(shù)方案也應(yīng)視為被包含在本發(fā)明的范圍內(nèi)。應(yīng)當(dāng)注意的是,在以上的描述中,僅以示例的方式,示出了本發(fā)明的技術(shù)方案,但并不意味著本發(fā)明局限于上述步驟和單元結(jié)構(gòu)。在可能的情形下,可以根據(jù)需要對步驟和單元結(jié)構(gòu)進行調(diào)整和取舍。因此,某些步驟和單元并非實施本發(fā)明的總體發(fā)明思想所必需的元素。因此,本發(fā)明所必需的技術(shù)特征僅受限于能夠?qū)崿F(xiàn)本發(fā)明的總體發(fā)明思想的最低要求,而不受以上具體實例的限制。至此已經(jīng)結(jié)合優(yōu)選實施例對本發(fā)明進行了描述。應(yīng)該理解,本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍的情況下,可以進行各種其它的改變、替換和添加。因此,本發(fā)明的范圍不局限于上述特定實施例,而應(yīng)由所附權(quán)利要求所限定。
權(quán)利要求
1.一種多核數(shù)字信號處理器,其特征在于所述多核數(shù)字信號處理器的全部內(nèi)核資源被分配至多個子系統(tǒng),其中,所述多個子系統(tǒng)中的至少一個子系統(tǒng)被分配了兩個以上的內(nèi)核的內(nèi)核資源。
2.根據(jù)權(quán)利要求I所述的多核數(shù)字信號處理器,其中,所述多個子系統(tǒng)中的至少一個子系統(tǒng)被分配了所有內(nèi)核的內(nèi)核資源。
3.根據(jù)權(quán)利要求I或2所述的多核數(shù)字信號處理器,其中,所述多核數(shù)字信號處理器的內(nèi)核資源是以子系統(tǒng)為單位進行資源調(diào)度的。
4.根據(jù)權(quán)利要求I或2所述的多核數(shù)字信號處理器,其中,動態(tài)調(diào)整所述子系統(tǒng)的內(nèi)核資源分配。
5.根據(jù)權(quán)利要求I或2所述的多核數(shù)字信號處理器,其中,所述多核數(shù)字信號處理器使用共享存儲器和專用存儲器。
6.根據(jù)權(quán)利要求5所述的多核數(shù)字信號處理器,其中,所述共享存儲器的存儲資源被劃分并分配至所述多個子系統(tǒng)中的多核子系統(tǒng)。
7.根據(jù)權(quán)利要求5所述的多核數(shù)字信號處理器,其中,所述專用存儲器的存儲資源被分配至所述多個子系統(tǒng)中的單核子系統(tǒng)和/或多核子系統(tǒng)。
8.一種使用多核數(shù)字信號處理器的系統(tǒng),包括 內(nèi)核資源被分配至多個子系統(tǒng)的多核數(shù)字信號處理器; 共享存儲器;以及 專用存儲器。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述共享存儲器的存儲資源被劃分并分配至所述多個子系統(tǒng)中的多核子系統(tǒng)。
10.根據(jù)權(quán)利要求8或9所述的系統(tǒng),其中,所述專用存儲器的存儲資源被分配至所述多個子系統(tǒng)中的單核子系統(tǒng)和/或多核子系統(tǒng)。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中,所述專用存儲器的至少一部分是在所述共享存儲器中定義的專用部分。
12.一種用于對多核數(shù)字信號處理器的內(nèi)核資源進行調(diào)度的調(diào)度器,包括 最大資源需求估計單元,用于估計任務(wù)在執(zhí)行過程中所需的最大內(nèi)核資源; 內(nèi)核負載測量單元,用于測量內(nèi)核資源是處于使用狀態(tài)還是處于空閑狀態(tài); 子系統(tǒng)選擇單元,用于基于最大資源需求估計單元估計的結(jié)果以及內(nèi)核負載測量單元測量的結(jié)果,根據(jù)預(yù)定策略,選擇有能力執(zhí)行該任務(wù)并且處于空閑狀態(tài)的子系統(tǒng);以及分配單元,用于將子系統(tǒng)選擇單元所選擇的子系統(tǒng)分配用于執(zhí)行所述任務(wù)。
13.根據(jù)權(quán)利要求12所述的調(diào)度器,還包括 資源需求實時估計單元,用于實時估計任務(wù)在執(zhí)行過程中所需的內(nèi)核資源;以及子系統(tǒng)內(nèi)核資源調(diào)整單元,用于根據(jù)資源需求實時估計單元估計的內(nèi)核資源需求量,調(diào)整子系統(tǒng)的內(nèi)核資源分配。
14.根據(jù)權(quán)利要求12或13所述的調(diào)度器,其中,所述預(yù)定策略包括以下至少一項 任務(wù)平均等待時間最短; 高優(yōu)先級任務(wù)優(yōu)先執(zhí)行; 核間負載平衡;以及內(nèi)核資源利用率最 大化。
全文摘要
本發(fā)明提出了一種多核數(shù)字信號處理器、使用該多核數(shù)字信號處理器的系統(tǒng)以及相應(yīng)的調(diào)度器。所述多核數(shù)字信號處理器的特征在于所述多核數(shù)字信號處理器的全部內(nèi)核資源被分配至多個子系統(tǒng),其中,所述多個子系統(tǒng)中的至少一個子系統(tǒng)被分配了兩個以上的內(nèi)核的內(nèi)核資源。
文檔編號G06F9/50GK102955685SQ201110235610
公開日2013年3月6日 申請日期2011年8月17日 優(yōu)先權(quán)日2011年8月17日
發(fā)明者胡濤 申請人:上海貝爾股份有限公司