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