處理器多進程技術的製作方法
2023-05-17 01:44:56
專利名稱:處理器多進程技術的製作方法
處理器多進程技術
技術領域:
本發明涉及一種處理器多進程技術,尤其是研究CMP系統高效調度的理論與優化 算法,實現基於CMP構架的Linux內核進程調度算法補丁(Patch),在Linux內核上提供一 個針對CMP構架的編譯選項。
背景技術:
處理器多核是隨著集成電路製造工藝的進步與微處理器體系結構的發展而發展 起來的,在一個晶片上集成了多個相同通用處理器的單晶片對稱多處理器(Chip Multi Processors,簡稱CMP)。最早是由美國史丹福大學提出的,其思想是在一塊晶片內SMP (對 稱多處理)架構,且並行執行不同的進程。和目前在伺服器領域廣泛採用的對稱多處理器 (Symmetric Multi-Processor, SMP)結構類似。SMP架構的靈活性比較突出。當半導體工藝提升至0. 18微米以後,線時已經超過 了門延遲,要求微處理器的設計通過劃分許多規模更小、局部更好的基本單結構來進行。相 比之下,由於結構CMP已經被劃分成多個核來設計,每個核都比較簡單,有利於優化設計, 因此更有發展前途。多處理器核可以在晶片內部緩存共享,提高利用率緩存,同時簡化並行 系統設計的複雜度,在CMP系統中,位於同一個晶片內部所有處理器內核以平等的身份參 與任務調度和中斷處理,共享內存和外部設備,而且也可以共享片內的(部分或全部)高速 緩存。
發明內容本發明要解決的技術問題是提供一種處理器多進程技術,它在支持的操作SMP系 統中,每個維護一個自己的CPU就緒進程隊列,稱為局部任務隊列,這樣大大降低競爭CPU。為解決上述技術問題,本發明所採用技術方案是就緒進程按時間片是否用完分 為active和exired兩大類,actve類包括那些時間片沒用完、當前可被調度的就緒進程, exired類包括那些時間片已用完的就緒進程。同時,進程按照每類中的其優先級的不同處 於不同的優先級鍊表中。與現有技術相比,本發明的有益效果是保證了運行調度器的時間上限,降低了不 必要的開銷;同時在內存中保留更加豐富的信息的做法也加速了定位過程候選進程。當隊 列activ中沒有可調度進程時,內核簡單地對調ctive和exired隊列,將原來的exired隊 列作為新的acive隊列後即可進行調度新一輪。
具體實施方式1、支持操作CMP的系統內核的調度系統需要很好地解決進程與CPU之間的「親和」 問題。一個進程可能在比較頻繁CPU之間地遷移,交互式進程(或高優先級的進程)可能 還會在CPU之間不斷「跳躍」,這樣,每一次遷移之後,都可能造成頻繁的內存訪問,導致整 體性能下降。
2、支持CMP作業系統的調度內核系統儘量使每個進程一直在固定的CPU上執行, 這樣可以Cache提高的命中率;但是如果某個CPU的就緒隊列過長,不斷的進程切換反而造 成命中率Cache的下降,而且還造成其他CPU不能充分發揮效能。3、無論當前CPU是繁忙或空閒,時鐘中斷每隔一段時間都會啟動一次平衡當前系 統負載。當然,CPU —旦當前發現自己的就緒隊列為空時,也會主動進行負載平衡。4、引入調度域(stucts checLdmain)的概念,將全體一層一層CPU劃分成不同的 區域,每個調度域中的CPU分成若干個CPU,且滿足任一 CPU存在於一個組中。每個CPU屬 於一個基本的調度(該域至少包括本CPU),但是CPU同時還屬於一個或多個調度域。CPU 的調度域通過構成一個單向鍊表。5、必須滿足A.父調度域是子調度域的集;B.每個CPU的最高層調度域必須包括 系統中的處理器。例如在一個CMP支持超線程的系統中,每個邏輯的基本CPU調度域包含所 在傳統物理CPU上的全部的邏輯CPU,基本域的每個CPU分組包含一個CPU邏輯;基本調度 域的父調度域是這個系統的最高層調度域,它包含系統中所有的邏輯CPU,該域的每個CPU 分組包含一個物理CPU上的全部CPU邏輯。6、對於操作Linux系統下結構CMP的內核進程調度進行研究,主要在多隊列調度、 進程調度的平衡負載和進程隊列重新調度三個方面提出比較先進的處理器CMP的進程動 態調度模型、平衡負高效載調度算法模型,CMP系統高效調度的理論與方法,實現從傳統模 式SMP到新的模式CMP的轉變。
權利要求
1.一種處理器多進程技術,針對體系CMP結構進行優化算法、作業系統優化調度,從而 充分利用CMP的優勢結構,提高計算的性能成為目前在算法和作業系統研究領域的一個熱 點問題。
2.在將已有的並行算法到CMP遷移構架下,並進行優化;對於採用結構的資料庫CMP 系統、桌面系統等的性能進行分析和比較,設計更好的作業系統;設計構架CMP的仿真系 統,以加快對於構架的CMP研究進程
3.對於LinuX系統,沒有如微軟這樣的核心廠商進行支持,對於CMP構架下的作業系統 優化的成果還比較少,也比較分散。因此借鑑支持作業系統CMP的關鍵技術對於設計基於 的操作CMP系統有著非常重要的意義。為了最大限度的發揮CMP的優勢構架,提高操作系 統進程調度效率是最能夠產生效果的方案。
4.所有進程就緒(TASK_RUNNING)被組織到同一個雙向鍊表之中,稱為任務全局隊列, 調度過程中將此鍊表中的所有進程,調用計算每一個進程,從中選擇權值的進程投入運行。 由於調度要所有就緒進程,因此選擇下一個運行進程的時間複雜度是0 (η) (η為就緒進程 的個數)。同時,因為就緒隊列是全局性的,對單CPU系統來講只可能有一個CPU訪問這個 隊列,而在多處理器CPU結構中,必須通過一個全局的保證同一時刻只有一個CPU進行訪 問,這樣導致系統中其他的自旋鎖等待。
全文摘要
本發明涉及處理器多進程技術,採用算法實踐結合理論分析方法對CMP(處理器多核單晶片)構架下的作業系統進程優化調度進行策略研究,探索在基於Linux系統的高效CMP構架下進程平衡負載的調度算法問題,完成調度算法和調度平衡的模型,實現以該模型為基礎的調度Linux內核示範系統。研究對操作Linux系統結合進行CPU特性高性能調度和計算優化有著重大意義,為實現從傳統模式SMP到新的模式CMP的轉變奠定基礎。CMP的結構相對簡單,可以直接使用現有的內核處理器,因此開發周期與成本相對較低,結構簡單帶來的另一個好處是更易獲得高的主頻。由於多個處理器集成在一塊晶片上,且cache共享,處理器之間的通信延遲會明顯降低,有利於提高系統的整體性能。
文檔編號G06F9/46GK102110017SQ20091025098
公開日2011年6月29日 申請日期2009年12月24日 優先權日2009年12月24日
發明者楊槐 申請人:楊槐