至少部分基于共享相同數(shù)據(jù)及/或存取相同存儲地址的任務(wù)分布的任務(wù)調(diào)度方法以及多 ...的制作方法
【專利說明】至少部分基于共享相同數(shù)據(jù)及/或存取相同存儲地址的任務(wù)分布的任務(wù)調(diào)度方法以及多核處理器系統(tǒng)中用于分配任務(wù)的相關(guān)非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)
[0001]交叉引用
[0002]本發(fā)明要求如下優(yōu)先權(quán):編號為61/904,072,申請日為2013年11月14日的美國臨時(shí)專利申請。上述美國臨時(shí)專利申請?jiān)诖艘徊⒆鳛閰⒖肌?br>技術(shù)領(lǐng)域
[0003]本發(fā)明揭露的實(shí)施例涉及一種任務(wù)調(diào)度方案。特別地,本發(fā)明揭露的實(shí)施例涉及一種多核處理器系統(tǒng)(mult1-core processor system)中用于調(diào)度任務(wù)(例如,普通任務(wù))的任務(wù)調(diào)度方法以及相關(guān)非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)(non-transitory computer readablemedium),其中上述任務(wù)調(diào)度方法至少部分基于共享相同特定數(shù)據(jù)及/或存取相同特定存儲地址的任務(wù)分布。
【背景技術(shù)】
[0004]現(xiàn)今,由于對運(yùn)算能力的越來越多需求,多核系統(tǒng)變得普及。因此,多核系統(tǒng)的操作系統(tǒng)(operating system,OS)需要決定不同處理器核心調(diào)度的任務(wù)以維持較好的負(fù)載平衡及/或較高的系統(tǒng)資源利用。上述處理器核心可按照不同集群(cluster)進(jìn)行分類,并且上述集群可分別隨著在高速緩存層中同級的分立高速緩存(cache)進(jìn)行分配。例如,可配置不同集群以分別使用不同第二層(leVel-2,L2)的高速緩存。通常,在多核系統(tǒng)中實(shí)施高速緩存一致性互聯(lián)(cache coherent interconnect)以管理致力于不同集群的高速緩存之間的高速緩存一致性。然而,當(dāng)L2高速緩存讀未命中或L2高速緩存書寫發(fā)生時(shí),上述高速緩存一致性互聯(lián)具有一致性開銷(coherency overhead)。傳統(tǒng)任務(wù)調(diào)度設(shè)計(jì)簡單地找出最忙處理器核心,并且將最忙處理器核心的運(yùn)行隊(duì)列中的任務(wù)移動(dòng)至最空閑處理器核心的運(yùn)行隊(duì)列。因此,傳統(tǒng)調(diào)度設(shè)計(jì)在不考慮高速緩存一致性開銷的情況下控制將任務(wù)從一個(gè)集群到另一個(gè)集群的轉(zhuǎn)移。
[0005]總之,需要?jiǎng)?chuàng)新的任務(wù)調(diào)度設(shè)計(jì),其當(dāng)將任務(wù)分配至集群中運(yùn)行隊(duì)列時(shí)考慮高速緩存一致性開銷,這樣可緩解或避免高速緩存一致性開銷從而取得改善的任務(wù)調(diào)度性能。
【發(fā)明內(nèi)容】
[0006]依據(jù)本發(fā)明實(shí)施例,提出至少部分基于共享相同特定數(shù)據(jù)及/或存取相同特定存儲地址的任務(wù)分布在多核處理器系統(tǒng)中分配任務(wù)的任務(wù)調(diào)度方法與非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)以解決上述問題。
[0007]根據(jù)本發(fā)明第一方面,揭露一種多核處理器系統(tǒng)的示例任務(wù)調(diào)度方法。該示例任務(wù)調(diào)度方法包含:當(dāng)?shù)谝蝗蝿?wù)屬于當(dāng)前在該多核處理器系統(tǒng)中的線程組時(shí),其中,該線程組具有共享相同特定數(shù)據(jù)的多個(gè)任務(wù),并且該多個(gè)任務(wù)包含該第一任務(wù)與至少一個(gè)第二任務(wù),至少部分基于該至少一個(gè)第二任務(wù)的分布決定該多核處理器系統(tǒng)中的目標(biāo)處理器核心,其中該至少一個(gè)第二任務(wù)位于該多核處理器系統(tǒng)中至少一個(gè)處理器核心的至少一個(gè)運(yùn)行隊(duì)列中;以及將該第一任務(wù)分配至該目標(biāo)處理器核心的運(yùn)行隊(duì)列。
[0008]根據(jù)本發(fā)明第二方面,揭露一種多核處理器系統(tǒng)的示例任務(wù)調(diào)度方法。該示例任務(wù)調(diào)度方法包含:當(dāng)?shù)谝蝗蝿?wù)屬于當(dāng)前在該多核處理器系統(tǒng)中的線程組時(shí),其中,該線程組具有存取相同特定存儲地址的多個(gè)任務(wù),并且該多個(gè)任務(wù)包含該第一任務(wù)與至少一個(gè)第二任務(wù),至少部分基于該至少一個(gè)第二任務(wù)的分布決定該多核處理器系統(tǒng)中的目標(biāo)處理器核心,其中該至少一個(gè)第二任務(wù)位于該多核處理器系統(tǒng)中至少一個(gè)處理器核心的至少一個(gè)運(yùn)行隊(duì)列中;以及將該第一任務(wù)分配至該目標(biāo)處理器核心的運(yùn)行隊(duì)列。
[0009]此外,本發(fā)明也提供一種存儲任務(wù)調(diào)度程序代碼的非短暫計(jì)算機(jī)可讀介質(zhì),其中當(dāng)多核處理器系統(tǒng)執(zhí)行該任務(wù)調(diào)度程序代碼時(shí),該任務(wù)調(diào)度程序代碼引發(fā)該多核處理器系統(tǒng)執(zhí)行上述任務(wù)調(diào)度方法。
[0010]在讀了用各種示圖描述的較佳實(shí)施例的詳細(xì)描述后,本領(lǐng)域技術(shù)人員可理解本發(fā)明的宗旨。
【附圖說明】
[0011]圖1是根據(jù)本發(fā)明實(shí)施例描述的多核處理器系統(tǒng)的示意圖;
[0012]圖2是根據(jù)本發(fā)明實(shí)施例描述的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)的示意圖;
[0013]圖3是描述第一任務(wù)調(diào)度操作的示意圖,其中上述操作將一個(gè)單線程進(jìn)程的任務(wù)分配入處理器核心的運(yùn)行隊(duì)列;
[0014]圖4是描述第二任務(wù)調(diào)度操作的示意圖,其中上述操作將屬于線程組的一個(gè)任務(wù)分配入處理器核心的運(yùn)行隊(duì)列;
[0015]圖5是描述第三任務(wù)調(diào)度操作的示意圖,其中上述操作將屬于線程組的一個(gè)任務(wù)分配入處理器核心的運(yùn)行隊(duì)列;
[0016]圖6是描述第四任務(wù)調(diào)度操作的示意圖,其中上述操作將屬于線程組的一個(gè)任務(wù)分配入處理器核心的運(yùn)行隊(duì)列;
[0017]圖7是描述第五任務(wù)調(diào)度操作的示意圖,其中上述操作將屬于線程組的一個(gè)任務(wù)分配入處理器核心的運(yùn)行隊(duì)列;
[0018]圖8是描述第六任務(wù)調(diào)度操作的示意圖,其中上述操作將屬于線程組的一個(gè)任務(wù)從一集群中處理器核心的運(yùn)行隊(duì)列轉(zhuǎn)移至另一集群中處理器核心的運(yùn)行隊(duì)列;
[0019]圖9是描述第七任務(wù)調(diào)度操作的示意圖,其中上述操作將一個(gè)單線程進(jìn)程的任務(wù)從一集群中處理器核心的運(yùn)行隊(duì)列轉(zhuǎn)移至另一集群中處理器核心的運(yùn)行隊(duì)列;
[0020]圖10是描述第八任務(wù)調(diào)度操作的示意圖,其中上述操作將一個(gè)單線程進(jìn)程的任務(wù)從一集群中處理器核心的運(yùn)行隊(duì)列轉(zhuǎn)移至另一集群中處理器核心的運(yùn)行隊(duì)列;
[0021]圖11是描述第九任務(wù)調(diào)度操作的示意圖,其中上述操作將一個(gè)單線程進(jìn)程的任務(wù)從一集群中處理器核心的運(yùn)行隊(duì)列轉(zhuǎn)移至相同集群中處理器的運(yùn)行隊(duì)列。
【具體實(shí)施方式】
[0022]在說明書及權(quán)利要求書當(dāng)中使用了某些詞匯來指稱特定的元件。所屬技術(shù)領(lǐng)域的技術(shù)人員應(yīng)可理解,硬件制造商可能會(huì)用不同的名詞來稱呼同一個(gè)元件。本說明書及權(quán)利要求書并不以名稱的差異作為區(qū)分元件的方式,而是以元件在功能上的差異作為區(qū)分的準(zhǔn)貝1J。在通篇說明書及權(quán)利要求項(xiàng)中所提及的“包含”為一開放式的用語,故應(yīng)解釋成“包含但不限定于”。此外,“耦接”一詞在此包含任何直接及間接的電氣連接手段。因此,若文中描述一個(gè)裝置耦接于另一裝置,則代表該一個(gè)裝置可直接電氣連接于該另一裝置,或通過其它裝置或連接手段間接地電氣連接至該另一裝置。
[0023]圖1是根據(jù)本發(fā)明實(shí)施例描述的多核處理器系統(tǒng)的示意圖。多核處理器系統(tǒng)10可在可攜式裝置中進(jìn)行實(shí)施,例如移動(dòng)電話、平板電腦、可穿戴式設(shè)備等。然而,上述說明并非對本發(fā)明的限制。即,任何使用所述任務(wù)調(diào)度方法的電子裝置皆落入本發(fā)明的保護(hù)范圍。在本實(shí)施例中,多核處理器系統(tǒng)10可具有多個(gè)集群112_1-112_N,其中N為正整數(shù)并且可基于實(shí)際設(shè)計(jì)考慮進(jìn)行調(diào)整。即,本發(fā)明不限制多核處理器系統(tǒng)10中配置的集群數(shù)量。
[0024]對于集群112_1_112_N,每個(gè)集群可為一組處理器核心。例如,集群112_1可包含一個(gè)或多個(gè)處理器核心117,其中每個(gè)處理器核心117具有運(yùn)算能力相同的相同處理器結(jié)構(gòu);以及集群112_N可包含一個(gè)或多個(gè)處理器核心118,其中每個(gè)處理器核心118具有運(yùn)算能力相同的相同處理器結(jié)構(gòu)。在一示例中,處理器核心117可具有運(yùn)算能力不同的不同處理器結(jié)構(gòu)。在另一示例中,處理器核心118可具有運(yùn)算能力不同的不同處理器結(jié)構(gòu)。在一示例設(shè)計(jì)中,多核處理器系統(tǒng)10可使用所述任務(wù)調(diào)度方法以及對稱多處理(symmetricmult1-processing, SMP)結(jié)構(gòu)。因此,多核處理器系統(tǒng)10中的每個(gè)處理器核心可具有運(yùn)算能力相同的相同處理器結(jié)構(gòu)。在另一示例設(shè)計(jì)中,多核處理器系統(tǒng)10可使用所述任務(wù)調(diào)度方法以及異構(gòu)多核(heterogeneous mult1-core)結(jié)構(gòu)。例如,集群112_1的每個(gè)處理器核心117可具有支持第一運(yùn)算能力的第一處理器結(jié)構(gòu),并且集群112_N的每個(gè)處理器核心Il8可具有支持第二運(yùn)算能力的第二處理器結(jié)構(gòu),其中第二處理器結(jié)構(gòu)與第一處理器結(jié)構(gòu)不同,并且第二運(yùn)算能力與第一運(yùn)算能力不同。
[0025]值得注意的是,可基于實(shí)際設(shè)計(jì)考慮調(diào)整集群112_1_112_N的處理器核心數(shù)量。例如,集群112_1中的處理器核心117的數(shù)量可與集群112_N中的處理器核心118的數(shù)量相同或不同。
[0026]可配置集群112_1_112_N在同級的高速緩存層各自使用不同的高速緩存。在本示例中,可將一個(gè)專用L2高速緩存分配至每個(gè)集群。如圖1所示,多核處理器系統(tǒng)10可具有多個(gè)L2高速緩存114_1-114_N。因此,集群112_1可使用一個(gè)L2高速緩存114_1用于緩存數(shù)據(jù),以及集群112_N可使用另一個(gè)L2高速緩存114_N用于緩存數(shù)據(jù)。另外,可使用高速緩存一致性互聯(lián)116管理集群112_1-112_N各自存取的L2高速緩存114_1_114_N之間的一致性。如圖1所示,存在通過高速緩存一致性互聯(lián)116耦接L2高速緩存114_1-114_N的主存儲器119。當(dāng)L2高速緩存的高速緩存未命中發(fā)生時(shí),從主存儲器119中重新得到請求數(shù)據(jù)然后存儲于L2高速緩存中。當(dāng)L2高速緩存的高速緩存命中發(fā)生時(shí),這意味著在L2高速緩存中請求數(shù)據(jù)是可用的,從而不需要存取主存儲器119。
[0027]在主存儲器119中的相同數(shù)據(jù)可存儲在相同存儲地址中。此外,可基于處理器核心產(chǎn)生的讀/寫請求中的存儲地址,存取L2高速緩存114_l-114_N的每一個(gè)中的高速緩存條目。所述任務(wù)調(diào)度方法可增加用于集群的L2高速緩存的高速緩存命中率,其中上述任務(wù)調(diào)度方法分配共享主存儲器119中的相同特定數(shù)據(jù)及/或存取主存儲器119中的相同特定存儲地址的多個(gè)任務(wù)至相同集群。例如,當(dāng)運(yùn)行在集群的一個(gè)處理器核心中的一個(gè)任務(wù)首先發(fā)出存儲地址處的請求數(shù)據(jù)的讀/寫請求時(shí),L2高速緩存的高速緩存未命中可發(fā)生,并且從主存儲器119中重新取得存儲地址處的請求數(shù)據(jù)然后將其緩存入L2高速緩存中。接著,當(dāng)運(yùn)行在相同集群的一個(gè)處理器核心中的另一任務(wù)發(fā)出相同存儲地址處的相同請求數(shù)據(jù)的讀/寫請求時(shí),L2高速緩存的高速緩存命中可發(fā)生,并且L2高速緩存可直接輸出緩存其中的請求數(shù)據(jù)以響應(yīng)讀/寫請求,而不需要存取主存儲器119。當(dāng)將共享主存儲器119中的相同特定數(shù)據(jù)及/或存取主存儲器119中的相同特定存儲地址的任務(wù)分配至相同集群時(shí),可提高集群的L2高速緩存的高速緩存命中率。既然觸發(fā)高速緩存一致性的高速緩存未命中(讀/寫未命中)可引起高速緩存一致性開銷,所以,提高的高速緩存命中率可幫助減少高速緩存一致性開銷。因此,在本發(fā)明中,例如,可定義線程組(thread group)為具有共享主存儲器119中相同特定數(shù)據(jù)及/或存取主存儲器119中相同特定存儲地址的多個(gè)任務(wù)。一個(gè)任務(wù)可為單線程進(jìn)程或多線程進(jìn)程的一個(gè)線程。當(dāng)將屬于相同線程組的大多數(shù)或所有任務(wù)安排在相同集群用于執(zhí)行時(shí),由于改進(jìn)的高速緩存局部