專利名稱:一種面向MPSoC的多線程調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明屬于嵌入式操作系統(tǒng)的多線程調(diào)度技術(shù)領(lǐng)域,具體涉及一種面向MPSoC的多線程調(diào)度方法。
背景技術(shù):
隨著半導(dǎo)體技術(shù)的不斷進(jìn)步,VLSI (超大規(guī)模集成電路,Very Large-ScaleIntegrated)的集成密度在大幅度增加。單一芯片上的集成度不斷提高,使得 SoC技術(shù)得到了發(fā)展和應(yīng)用。SoC技術(shù)是將一個(gè)系統(tǒng)的全部功能模塊集成到單一的芯片上, 從而實(shí)現(xiàn)在單個(gè)芯片上集成完備的系統(tǒng)功能。處理器核也簡(jiǎn)稱為核。集成在SoC芯片上的通常是IP (知識(shí)產(chǎn)權(quán),Intellectual Property)核。這些可重用的IP核包括嵌入式處理器,存儲(chǔ)模塊,接口模塊和面向應(yīng)用定制的處理構(gòu)件。在SoC 上集成的IP核可以分為三類軟核(Soft IP),是指使用RTL(寄存器傳送級(jí)別,Register Transfer Level)或者更高級(jí)別進(jìn)行描述的IP核;硬核(HardIP),是指具有固定的層結(jié)構(gòu), 并且針對(duì)特定過程中的特定應(yīng)用進(jìn)行了定制的優(yōu)化過的IP核;固化核(Firm IP)是指已經(jīng)做了描述但是提供了參數(shù)供設(shè)計(jì)人員進(jìn)行應(yīng)用定制的IP核。SoC不僅集成的晶體管數(shù)量多,而且由于集成了不同種類的功能和技術(shù),并且由于軟硬件的協(xié)同工作,使得SoC具有復(fù)雜的體系結(jié)構(gòu)和邏輯接口。SoC的高集成度也使得SoC 的功能極為豐富,提高了對(duì)片上面積的有效利用,縮短了片上連線的長(zhǎng)度,從而提高了整個(gè)系統(tǒng)的性能。由于IP核具有可重用性,在IP核設(shè)計(jì)完成后,相當(dāng)數(shù)量的IP核被大多數(shù)SoC 系統(tǒng)所使用和集成。在設(shè)計(jì)平臺(tái)級(jí)的嵌入式系統(tǒng)時(shí),這種重用性極大的提高了開發(fā)效率。MPSoC是對(duì)SoC技術(shù)的進(jìn)一步發(fā)展,是指具有多于一個(gè)嵌入式指令集處理器的 SoC0 MPSoC結(jié)合SoC技術(shù)與多核技術(shù)的特點(diǎn)。多核技術(shù)是指在一個(gè)芯片上集成多核處理器核,以提高處理器的處理能力;如果芯片上所集成的多個(gè)處理器核相同,核間地位相同, 則稱為同構(gòu)多核處理器;如果芯片上所集成的處理器核不同,有主處理器和協(xié)處理器之分, 則稱為異構(gòu)多核處理器。MPSoC片上既有多核處理器核,又集成了不同種類的軟硬件,兼具了 SoC和多核的優(yōu)點(diǎn)。在SoC與MPSoC芯片上,往往會(huì)集成存儲(chǔ)器,為處理器核提供存儲(chǔ)服務(wù),從而提高處理器的效率。MPSoC上計(jì)算資源豐富(即擁有多個(gè)處理器核),因此,通常會(huì)采用多線程并行的方式來利用這些計(jì)算資源。同時(shí),盡管這些處理器核(簡(jiǎn)稱為處理核或者核)同在一個(gè)處理器芯片上,由于核間連線長(zhǎng)短不同,核間的通信代價(jià)也不同。一般來說,研究表明,核的物理位置越遠(yuǎn),核間連線就越長(zhǎng),通信代價(jià)也就越大。目前在現(xiàn)有的多線程調(diào)度算法中,尚無解決這種情況的高效率方法。
發(fā)明內(nèi)容
本發(fā)明旨在克服現(xiàn)有技術(shù)缺陷,目的在于提供一種能降低線程之間的通信代價(jià)和提高調(diào)度效率的面向MPSoC的多線程調(diào)度方法。
為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為如下步驟第一步、處理器核組劃分將MPSoC上的多個(gè)處理器核按物理位置關(guān)系劃分為處理器核組,相鄰的處理器核劃分到同一個(gè)處理器核組當(dāng)中;采用處理器核組配置表的形式,將劃分后的處理器核組提供給嵌入式操作系統(tǒng);處理器核組配置表的基本內(nèi)容包括處理器核組個(gè)數(shù)和每個(gè)處理器核組的標(biāo)識(shí),處理器核組配置表的附加內(nèi)容為處理器核頻率、處理器核數(shù)量、處理器核組劃分依據(jù)、處理器核溫度范圍中的一種以上。第二步、線程組劃分進(jìn)行線程組劃分,將多線程進(jìn)行分組;分組的方法是將屬于同一個(gè)進(jìn)程的線程劃分到同一個(gè)線程組。第三步、線程組調(diào)度采用嵌入式操作系統(tǒng)的調(diào)度算法,依據(jù)處理器核組配置表對(duì)線程組進(jìn)行調(diào)度。第四步、線程調(diào)度在同一個(gè)處理器核組內(nèi),采用分時(shí)調(diào)度或輪轉(zhuǎn)調(diào)度算法對(duì)線程進(jìn)行調(diào)度。第五步、線程調(diào)度優(yōu)化1)當(dāng)處理器上存在空閑的處理器核組時(shí),繁忙的處理器核組的就緒隊(duì)列中仍然存在多個(gè)線程,采用如下的策略進(jìn)行調(diào)度優(yōu)化將屬于同一個(gè)進(jìn)程的線程從繁忙的處理器核組遷移到空閑的處理器核組,遷移的線程數(shù)目Mi為Mi = Cs(1)式(1)中Cs是空閑的處理器核組中處理器核的數(shù)目。2)如果仍然有處理器核組空閑,并且剩下的就緒隊(duì)列中,存在同一個(gè)進(jìn)程的線程無法全部調(diào)度到一個(gè)處理器核組當(dāng)中的情況時(shí),將多余的線程按照第五步中的1)所述方法進(jìn)行調(diào)度。所述空閑的處理器核組是指處理器核組中的所有處理器核沒有正在執(zhí)行地線程; 空閑的處理器核組個(gè)數(shù)是對(duì)于m個(gè)處理器核組,存在η個(gè)進(jìn)程,當(dāng)η小于m時(shí),存在m-n個(gè)空閑的處理器核組;其中,m和η均為自然數(shù),且m大于或等于2。由于采用上述技術(shù)方案,本發(fā)明通過多核處理器上處理器核組的劃分,將物理距離近的處理器核劃分到同一處理器核組內(nèi),提高了通信的效率,并減少了線路上的通信能耗;而處理器核組間的線程遷移則降低了繁忙的處理器核組的工作負(fù)擔(dān),利用空閑的處理器核組執(zhí)行線程,提高了處理器的執(zhí)行效率。與現(xiàn)有技術(shù)相比,具有如下積極效果是(1)高效性。本發(fā)明利用分組對(duì)多核多線程進(jìn)行調(diào)度,將物理位置上相距近的處理器核劃分到同一個(gè)處理器核組,同一個(gè)處理器核組內(nèi)部通信距離短,通信效率高;同時(shí),由于將繁忙的處理器核組中的線程遷移到了空閑的處理器核組,提高了處理器核的利用效率和線程的執(zhí)行效率。(2)低能耗。本發(fā)明中將多個(gè)處理器核分組,線程間通信以處理器核組內(nèi)通信為主,而同一處理器核組的線程通信物理距離短,需要消耗在線路上的能耗也低,從而降低了多線程通信的能耗。
因此,本發(fā)明根據(jù)MPSoC上處理器核間的物理距離不同將處理器核劃分為處理器核組,將多線程劃分為不同的線程組,將線程組在處理器核組上進(jìn)行調(diào)度,減少了線程之間的通信代價(jià),提高了調(diào)度的效率。
圖1是本發(fā)明的實(shí)施過程示意圖;圖2是本發(fā)明的4核處理器的處理器核組劃分示意圖;圖3是本發(fā)明的8核處理器的處理器核組劃分示意圖。
具體實(shí)施例方式實(shí)施例1一種面向MPSoC的多線程調(diào)度方法。其方法如圖1所示步驟第一步、處理器核組劃分將MPSoC上的多個(gè)處理器核按物理位置關(guān)系劃分為處理器核組,相鄰的處理器核劃分到同一個(gè)處理器核組當(dāng)中;采用處理器核組配置表的形式,將分后的處理器核組提供給嵌入式操作系統(tǒng);處理器核組配置表的基本內(nèi)容包括處理器核組個(gè)數(shù)和每個(gè)處理器核組的標(biāo)識(shí),處理器核組配置表的附加內(nèi)容為處理器核頻率、處理器核數(shù)量、處理器核組劃分依據(jù)、處理器核溫度范圍中的一種以上。在MPSoC上集成了多個(gè)處理器核。為了充分利用片上的多個(gè)處理器核,將MPSoC 上的多個(gè)處理器核按物理位置關(guān)系進(jìn)行劃分,通過對(duì)處理器核的分組,形成不同的處理器核組,以減少訪問延遲。對(duì)于多核嵌入式系統(tǒng)MPSoC來說,最為重要的片上計(jì)算資源就是這些處理器核。因此,在劃分時(shí)是以處理器核的物理位置為劃分的主要依據(jù)。MPSoC上有多個(gè)處理器核。對(duì)于相鄰的處理器核,將它們劃分到同一個(gè)處理器核組。而每個(gè)處理器核組內(nèi)都是由一個(gè)以上的處理器核組成,故片上的處理器核就會(huì)被劃分進(jìn)不同的處理器核組之內(nèi)。這樣,位于同一個(gè)處理器核組內(nèi)的處理器核被聚集成一個(gè)整體, 能夠做為更大的調(diào)度單元,由操作系統(tǒng)進(jìn)行調(diào)度。處理器核的劃分依據(jù)是根據(jù)處理器核間的物理位置,相鄰的處理器核劃分到同一個(gè)處理器核組當(dāng)中。例如,對(duì)于一個(gè)擁有4個(gè)處理器核的MPSoC來說,如圖2所示,處理器核O和處理器核3在片上的物理距離小,物理位置近,劃分為處理器核組O ;而處理器核1和處理器核2在片上的物理距離小,物理位置近,劃分為處理器核組1。這樣劃分的原因,是因?yàn)槲锢砦恢眯?,通信代價(jià)也小。處理器核的劃分是根據(jù)實(shí)際需要進(jìn)行劃分,每個(gè)處理器核組中包含的處理器核的數(shù)目相同或不同。例如,將擁有4個(gè)處理器核的MPSoC劃分為處理器核O為處理器核組0, 處理器核1、處理器核2、處理器核3劃分為處理器核組1。采用處理器核組配置表的形式,將劃分后的處理器核組提供給嵌入式操作系統(tǒng)。 處理器核組配置表的基本內(nèi)容包括處理器核組個(gè)數(shù)和每個(gè)處理器核組的標(biāo)識(shí),處理器核組配置表的附加內(nèi)容為處理器核頻率、處理器核數(shù)量、處理器核組劃分依據(jù)、處理器核溫度范圍中的一種以上。如圖2所示的多核處理器,在經(jīng)過處理器核組劃分后,選擇處理器核數(shù)量和處理器核頻率為處理器核組配置表的附加內(nèi)容,則處理器核組配置表內(nèi)容為1)處理器核組0 處理器核1,處理器核32)處理器核組1,處理器核0,處理器核23)處理器核數(shù)量44)處理器核頻率處理器核0 (500MHz),處理器核1 (500MHz),處理器核 2 (500MHz),處理器核 3 (500MHz)。第二步、線程組劃分進(jìn)行線程組劃分,將多線程進(jìn)行分組;分組的方法是將屬于同一個(gè)進(jìn)程的線程劃分到同一個(gè)線程組。在MPSoC上,為了充分利用多核處理器的處理能力,采用多線程并行的方法。處理器核組劃分完畢之后,為了進(jìn)行更好的調(diào)度優(yōu)化,進(jìn)行線程組劃分,將多線程進(jìn)行分組。分組的方法是將屬于同一個(gè)進(jìn)程的線程劃分到同一個(gè)線程組。例如,對(duì)于線程T1、T2、T3、T4、 Τ5、Τ6和Τ7,其中線程Tl、Τ2和Τ3屬于進(jìn)程Pl ;線程Τ4、Τ5、Τ6和Τ7屬于進(jìn)程Ρ2。線程 Tl、Τ2和Τ3將劃分到同一個(gè)線程組Gl ;線程Τ4、Τ5、Τ6和Τ7劃分到同一個(gè)線程組G2。第三步、線程組調(diào)度采用嵌入式操作系統(tǒng)的調(diào)度算法,依據(jù)處理器核組配置表對(duì)線程組進(jìn)行調(diào)度。采用嵌入式操作系統(tǒng)的調(diào)度算法,依據(jù)處理器核組配置表對(duì)線程組進(jìn)行調(diào)度。 MPSoC上的處理器核被劃分為處理器核組后,對(duì)于嵌入式操作系統(tǒng)來說,調(diào)度時(shí)以處理器核組為單位,依據(jù)處理器核組配置表獲取處理器核組的信息;同時(shí)將單個(gè)處理器核組當(dāng)作一個(gè)基本的分配單元,在多個(gè)線程組之間進(jìn)行調(diào)度和分配。對(duì)于每個(gè)處理器核組,嵌入式操作系統(tǒng)都維持一個(gè)就緒隊(duì)列,就緒隊(duì)列中有就緒線程組,就緒線程組是可執(zhí)行的一組線程,就緒線程組中的線程屬于同一個(gè)線程組(即同一個(gè)進(jìn)程)。當(dāng)某個(gè)處理器核組上的線程組運(yùn)行結(jié)束后,操作系統(tǒng)就分配就緒線程組到這個(gè)處理器核組上去。第四步、線程調(diào)度同一個(gè)進(jìn)程內(nèi)的線程被調(diào)度到同一個(gè)就緒隊(duì)列當(dāng)中。在對(duì)處理器核組進(jìn)行劃分時(shí),一個(gè)處理器核組內(nèi)有多個(gè)處理器核。因此,當(dāng)線程組中的多線程運(yùn)行時(shí),盡管該進(jìn)程只能使用某個(gè)處理器核組,但由于處理器核組內(nèi)部的計(jì)算資源同樣豐富,當(dāng)這個(gè)就緒隊(duì)列對(duì)應(yīng)的處理器核組可用時(shí),該進(jìn)程對(duì)應(yīng)的線程被分配到這個(gè)處理器核組上運(yùn)行。在同一個(gè)處理器核組內(nèi),采用分時(shí)調(diào)度算法對(duì)線程進(jìn)行調(diào)度。第五步、線程調(diào)度優(yōu)化1)為了提高對(duì)處理器核資源的利用效率,在處理器上存在空閑的處理器核組的情況下,將單個(gè)進(jìn)程的多個(gè)線程同時(shí)調(diào)度到多個(gè)就緒隊(duì)列當(dāng)中。當(dāng)處理器上存在空閑的處理器核組時(shí),繁忙的處理器核組的就緒隊(duì)列中仍然存在多個(gè)線程,采用如下的策略進(jìn)行調(diào)度優(yōu)化將屬于同一個(gè)進(jìn)程的線程從繁忙的處理器核組遷移到空閑的處理器核組,遷移的線程數(shù)目Mi為Mi = Cs(1)式⑴中Cs是空閑的處理器核組中處理器核的數(shù)目;
空閑的處理器核組是指處理器核組中的所有處理器核沒有正在執(zhí)行地線程;空閑的處理器核組個(gè)數(shù)是對(duì)于m個(gè)處理器核組,存在η個(gè)進(jìn)程,當(dāng)η小于m時(shí),存在m-n個(gè)空閑的處理器核組;其中,m和η均為自然數(shù),且m大于或等于2。2)如果仍然有處理器核組空閑,并且剩下的就緒隊(duì)列中,存在同一個(gè)進(jìn)程的線程無法全部調(diào)度到一個(gè)處理器核組當(dāng)中的情況時(shí),將多余的線程按照第五步中的1)所述方法進(jìn)行調(diào)度。通過上述方法,對(duì)線程調(diào)度進(jìn)行優(yōu)化來提高處理器核的利用率。實(shí)施例2一種面向MPSoC的多線程調(diào)度方法。該方法的步驟是第一步、處理器核組劃分,處理器有8個(gè)處理器核。其劃分方法如圖3所示,以物理位置為依據(jù),將處理器核0,處理器核3,處理器核4劃分為處理器核組0,處理器核1,處理器核2劃分為處理器核組1,處理器核5,處理器核6,處理器核7劃分為處理器核組2。第四步、線程調(diào)度中,同一個(gè)進(jìn)程內(nèi)線程被調(diào)度到同一個(gè)就緒隊(duì)列當(dāng)中。在對(duì)處理器核組進(jìn)行劃分時(shí),一個(gè)處理器核組內(nèi)有多個(gè)處理器核。因此,當(dāng)線程組中的多線程運(yùn)行時(shí),盡管該進(jìn)程只能使用某個(gè)處理器核組,但是由于處理器核組內(nèi)部的計(jì)算資源同樣豐富, 當(dāng)這個(gè)就緒隊(duì)列對(duì)應(yīng)的處理器核組可用時(shí),該進(jìn)程對(duì)應(yīng)的線程被分配到這個(gè)處理器核組上運(yùn)行。在同一個(gè)處理器核組內(nèi),采用輪轉(zhuǎn)調(diào)度算法對(duì)線程進(jìn)行調(diào)度。其余同實(shí)施例1。本具體實(shí)施方式
通過對(duì)處理器核組的劃分,將物理距離近的處理器核劃分到同一處理器核組內(nèi),提高了通信的效率,并減少了線路上的通信能耗;而處理器核組間的線程遷移則降低了繁忙的處理器核組的工作負(fù)擔(dān),利用空閑的處理器核組執(zhí)行線程,提高了處理器的執(zhí)行效率。與現(xiàn)有技術(shù)相比,具有如下積極效果是(1)高效性。利用分組對(duì)多核多線程進(jìn)行調(diào)度,將物理位置上相距近的處理器核劃分到同一個(gè)處理器核組,同一個(gè)處理器核組內(nèi)部通信距離短,通信效率高;同時(shí),由于將繁忙的處理器核組中的線程遷移到了空閑的處理器核組,提高了處理器核的利用效率和線程的執(zhí)行效率。(2)低能耗。將多處理器核分組后,線程間通信以處理器核組內(nèi)通信為主,而同一處理器核組的線程通信物理距離短,需要消耗在線路上的能耗也低,從而降低了多線程通信的能耗。因此,本具體實(shí)施方式
根據(jù)MPSoC上處理器核間的物理距離不同將處理器核劃分為處理器核組,將多線程劃分為不同的線程組,將線程組在處理器核組上進(jìn)行調(diào)度,減少了線程之間的通信代價(jià),提高了調(diào)度的效率。
權(quán)利要求
1.一種面向MPSoC的多線程調(diào)度方法,其特征在于該方法的步驟是 第一步、處理器核組劃分將MPSoC上的多個(gè)處理器核按物理位置關(guān)系劃分為處理器核組,相鄰的處理器核劃分到同一個(gè)處理器核組當(dāng)中;采用處理器核組配置表的形式,將劃分后的處理器核組提供給嵌入式操作系統(tǒng);處理器核組配置表的基本內(nèi)容包括處理器核組個(gè)數(shù)和每個(gè)處理器核組的標(biāo)識(shí),處理器核組配置表的附加內(nèi)容為處理器核頻率、處理器核數(shù)量、處理器核組劃分依據(jù)、處理器核溫度范圍中的一種以上; 第二步、線程組劃分進(jìn)行線程組劃分,將多個(gè)線程進(jìn)行分組;分組的方法是將屬于同一個(gè)進(jìn)程的線程劃分到同一個(gè)線程組;第三步、線程組調(diào)度采用嵌入式操作系統(tǒng)的調(diào)度算法,依據(jù)處理器核組配置表對(duì)線程組進(jìn)行調(diào)度; 第四步、線程調(diào)度在同一個(gè)處理器核組內(nèi),采用分時(shí)調(diào)度或輪轉(zhuǎn)調(diào)度算法對(duì)線程進(jìn)行調(diào)度; 第五步、線程調(diào)度優(yōu)化1)當(dāng)處理器上存在空閑的處理器核組時(shí),繁忙的處理器核組的就緒隊(duì)列中仍然存在多個(gè)線程,采用如下的策略進(jìn)行調(diào)度優(yōu)化將屬于同一個(gè)進(jìn)程的線程從繁忙的處理器核組遷移到空閑的處理器核組,遷移的線程數(shù)目吣為Mi = Cs(1)式(1)中Cs是空閑的處理器核組中處理器核的數(shù)目;2)如果仍然有處理器核組空閑,在剩下的就緒隊(duì)列中存在同一個(gè)進(jìn)程的線程無法全部調(diào)度到一個(gè)處理器核組當(dāng)中的情況時(shí),將多余的線程按照第五步中的1)所述方法進(jìn)行調(diào)度。
2.根據(jù)權(quán)利要求1所述的面向MPSoC的多線程調(diào)度方法,其特征在于所述空閑的處理器核組是指處理器核組中的所有處理器核沒有正在執(zhí)行地線程;空閑的處理器核組個(gè)數(shù)是對(duì)于m個(gè)處理器核組,存在η個(gè)進(jìn)程,當(dāng)η小于m時(shí),存在m-n個(gè)空閑的處理器核組;其中,m和η均為自然數(shù),且m大于或等于2。
全文摘要
本發(fā)明涉及一種面向MPSoC的多線程調(diào)度方法。其技術(shù)方案是先將MPSoC上的多個(gè)處理器核按物理位置關(guān)系劃分為處理器核組,相鄰的處理器核劃分到同一個(gè)處理器核組當(dāng)中;再將屬于同一個(gè)進(jìn)程的線程劃分到同一個(gè)線程組,然后依據(jù)處理器核組配置表對(duì)線程組進(jìn)行調(diào)度,在同一個(gè)處理器核組內(nèi),采用分時(shí)調(diào)度或輪轉(zhuǎn)調(diào)度算法對(duì)線程進(jìn)行調(diào)度;最后進(jìn)行線程調(diào)度優(yōu)化,即將屬于同一個(gè)進(jìn)程的線程從繁忙的處理器核組遷移到空閑的處理器核組,遷移的線程數(shù)目Mi等于空閑的處理器核組中處理器核的數(shù)目Cs。本發(fā)明將多線程劃分為不同的線程組,將線程組在核組上進(jìn)行調(diào)度,減少了線程之間的通信代價(jià),提高了調(diào)度的效率。
文檔編號(hào)G06F9/38GK102193779SQ20111012526
公開日2011年9月21日 申請(qǐng)日期2011年5月16日 優(yōu)先權(quán)日2011年5月16日
發(fā)明者劉小明, 盧建華, 張凱, 張鴻, 胡威, 邵平凡, 郭宏, 陳姚節(jié), 陳建勛 申請(qǐng)人:武漢科技大學(xué)