專利名稱:基于功能劃分的多線程共享多核處理器二級(jí)緩存的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多核多線程技術(shù)領(lǐng)域,特別是涉及一種基于功能劃分的多線程共 享多核處理器二級(jí)緩存的方法。.
背景技術(shù):
隨著集成電路技術(shù)的發(fā)展,處理器的性能提升已不能指望主頻的提高,要想 使微處理器性能繼續(xù)按摩爾定律推進(jìn),使處理器能夠符合計(jì)算發(fā)展的需求,必
須研究新的微架構(gòu)和新的計(jì)算模型,因此單芯片多處理器(Chip Multi-processors,簡(jiǎn)稱CMP)架構(gòu),也就是通常所說(shuō)的多核,成為現(xiàn)在學(xué)術(shù)界 和工業(yè)界關(guān)注的熱點(diǎn),并已成為服務(wù)器和桌面領(lǐng)域的主流。
每種新的硬件體系結(jié)構(gòu)的提出,必然要與相適應(yīng)的軟件配合,才能發(fā)揮它的 最大性能。目前的硬件已經(jīng)完成了從單核到多核的跨越,但多核的軟件設(shè)計(jì)的 研究還是處于百家爭(zhēng)鳴的狀態(tài),雖然有了一定的研究成果,但新的方法、新的 研究數(shù)據(jù)仍然曾出不窮。特別是在嵌入式多核領(lǐng)域,針對(duì)性的研究還是太少。 而嵌入式芯片的產(chǎn)量和應(yīng)用又是遠(yuǎn)遠(yuǎn)大于桌面系統(tǒng)和服務(wù)器系統(tǒng),并且高端的 嵌入式系統(tǒng)也早巳嶄露頭角,并將繼續(xù)占領(lǐng)一個(gè)重要的地位。多核嵌入式作為 其中的一個(gè)主要代表已漸漸成為嵌入式領(lǐng)域和多核領(lǐng)域的研究熱點(diǎn)。
從多核的快速發(fā)展中可以預(yù)見(jiàn),多核即將被廣泛應(yīng)用到一個(gè)更廣闊的市場(chǎng) ——嵌入式系統(tǒng)。據(jù)統(tǒng)計(jì)嵌入式芯片占整個(gè)芯片市場(chǎng)的80%-90%[1],而多核時(shí) 代的到來(lái)將使得這個(gè)領(lǐng)域煥發(fā)出新的研究熱潮。由于底層體系結(jié)構(gòu)的改變,許 多嵌入式研究方向需要進(jìn)行修正,包括實(shí)時(shí)性、可靠性、節(jié)能等等。雖然這方 面的工作才公共起步,但必將在未來(lái)的幾年中成為嵌入式研究的主流。
嵌入式的軟件優(yōu)化涉及到方方面面,包括實(shí)時(shí)性、可靠性、安全性、節(jié)能、 系統(tǒng)吞吐量等等。但是實(shí)時(shí)性一直占據(jù)著其中最重要的位置??梢哉f(shuō)實(shí)時(shí)性是 航天、軍事、工業(yè)控制等領(lǐng)域的命脈。
實(shí)時(shí)性的本質(zhì)問(wèn)題是在一個(gè)給定的時(shí)間T內(nèi),系統(tǒng)必須完成所要完成的任 務(wù),如果完成的時(shí)間為t, t<=T。基于這個(gè)限制,許多研究正試圖達(dá)到這個(gè)目的。 但過(guò)去的研究主要從操作系統(tǒng)等間接層面來(lái)改善系統(tǒng)的實(shí)時(shí)性,無(wú)法觸及到根 本問(wèn)題——實(shí)時(shí)任務(wù)。多核系統(tǒng)的出現(xiàn),使得多個(gè)程序可以真正地同時(shí)運(yùn)行在 一個(gè)系統(tǒng)。推而廣之,只要方法適當(dāng),可以將一個(gè)程序同時(shí)運(yùn)行在不同的核上,每個(gè)核完成任務(wù)的一部分。由于系統(tǒng)資源的提升,可以將這個(gè)實(shí)時(shí)任務(wù)的完成 時(shí)間縮為原來(lái)的一半,甚至更短。
目前多核處理器的二級(jí)緩存發(fā)生了改變,以往是每個(gè)核獨(dú)占一個(gè)二級(jí)緩存,
而在如今的CMP (Chip Multi-processor)的處理器中,以多個(gè)核為一組共享二 級(jí)緩存,本發(fā)明通過(guò)基于功能劃分的多線程多核二級(jí)緩存來(lái)進(jìn)一步地提升實(shí)時(shí) 任務(wù)的性能。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種基于功能劃分的多線程共享多核處理器二級(jí)緩 存的方法。
本發(fā)明解決其技術(shù)問(wèn)題采用的技術(shù)方案如下
1) 基于功能的多線程劃分
根據(jù)程序的結(jié)構(gòu),將程序按照功能模塊進(jìn)行劃分,形成基于功能劃分的多 線程;
2) 改進(jìn)操作系統(tǒng)的線程分配
操作系統(tǒng)在啟動(dòng)的時(shí)候收集到關(guān)于多核處理器的所有信息,根據(jù)二級(jí)緩存 的配置將處理器進(jìn)行分組;當(dāng)實(shí)時(shí)任務(wù)的開(kāi)發(fā)者將任務(wù)分解后的線程共享關(guān)系 傳入操作系統(tǒng),操作系統(tǒng)根據(jù)這個(gè)共享關(guān)系和處理器的配置進(jìn)行線程的類別劃 分;將共享數(shù)據(jù)量大的線程劃分到一個(gè)線程類中,將會(huì)產(chǎn)生二級(jí)緩存訪問(wèn)沖突 的線程劃分到不同的類當(dāng)中,最后將不同的線程類映射至多核組;
3) 優(yōu)化線程切換
對(duì)操作系統(tǒng)的線程切換模塊的地址重新進(jìn)行映射,將操作系統(tǒng)的線程切換 模塊的地址映射到Scratchpad Memory 。
本發(fā)明與背景技術(shù)相比,具有的有益的效果是
本發(fā)明是一種基于功能劃分的多線程共享多核處理器二級(jí)緩存的方法,其 主要功能是結(jié)合多核處理器上二級(jí)緩存的特點(diǎn),對(duì)程序進(jìn)行基于功能的多線程 劃分,并在操作系統(tǒng)中設(shè)計(jì)了基于二級(jí)緩存共享的線程分配算法,提供劃分后 任務(wù)的運(yùn)行支持。
(1) 高效性。本發(fā)明實(shí)現(xiàn)了多核處理器上二級(jí)緩存的多線程共享,可以大大 提升系統(tǒng)實(shí)時(shí)任務(wù)的性能,從而降低系統(tǒng)的激勵(lì)-響應(yīng)周期。
(2) 實(shí)用性。多線程可以同時(shí)運(yùn)行在系統(tǒng)上,將大大縮短整個(gè)任務(wù)的運(yùn)行時(shí)間。
圖1是本發(fā)明的實(shí)施過(guò)程示意圖。
圖2是程序功能分解示意圖。 圖3是本發(fā)明的線程分配過(guò)程示意圖。
具體實(shí)施例方式
本發(fā)明是一種基于功能劃分的多線程共享多核處理器二級(jí)緩存的方法,下 面結(jié)合圖1說(shuō)明其具體實(shí)施過(guò)程。
1) 基于功能的多線程劃分
一個(gè)實(shí)時(shí)任務(wù)在運(yùn)行時(shí),并不是在做一個(gè)十分孤立的工作。它需要用到系 統(tǒng)的各個(gè)資源來(lái)達(dá)到目的,在這個(gè)過(guò)程中往往涉及到多個(gè)子任務(wù)。在單核體系
結(jié)構(gòu)下,如圖2(a)所示的程序結(jié)構(gòu)在實(shí)際應(yīng)用中十分普遍。在程序的主循環(huán)中, 需要先后調(diào)用各個(gè)子模塊的接口來(lái)協(xié)同完成這個(gè)任務(wù)。這種程序結(jié)構(gòu)就存在著 巨大的可并行性,簡(jiǎn)單地可以拆分為圖2(b)所示的兩個(gè)線程。拆分后,多個(gè)子任 務(wù)可以同時(shí)運(yùn)行在系統(tǒng)上,將大大縮短整個(gè)任務(wù)的運(yùn)行時(shí)間。按照這種基于功 能模塊的劃分方法,將程序劃分成多線程。
在圖2(a)的while循環(huán)中主要做了兩個(gè)工作, 一般這兩個(gè)工作是存在著一定 的相關(guān)性的。在單核的情況下,將之拆為兩個(gè)線程分配到一個(gè)核,只會(huì)帶來(lái)同 步和調(diào)度的開(kāi)銷,而無(wú)法獲得性能的提升。這也就是為什么單核下,圖2(a)這種 類型的代碼如此常見(jiàn)的原因了。但在多核體系下,多個(gè)線程意味著更好地利用 了系統(tǒng)的資源,同步的開(kāi)銷相對(duì)于計(jì)算資源的提升是很小的。所以將圖2(a)的 while循環(huán)分解為圖2(b)的雙線程是十分必要的。當(dāng)然,線程的個(gè)數(shù)是由程序的 設(shè)計(jì)和硬件提供的支持所共同決定的,由具體的應(yīng)用環(huán)境決定。
比如一個(gè)word編輯器, 一邊編輯一邊做詞法句法檢查,可能還有更多的子 任務(wù)在后臺(tái)運(yùn)行,將這些任務(wù)分布到不同的物理核將極大地提升性能。
2) 改進(jìn)操作系統(tǒng)的線程分配
操作系統(tǒng)在啟動(dòng)的時(shí)候收集到關(guān)于多核處理器的所有信息,根據(jù)二級(jí)緩存 的配置將處理器進(jìn)行分組。當(dāng)實(shí)時(shí)任務(wù)的開(kāi)發(fā)者將任務(wù)分解后的線程共享關(guān)系 傳入操作系統(tǒng),操作系統(tǒng)根據(jù)這個(gè)共享關(guān)系和處理器的配置進(jìn)行線程的類別劃 分。將共享數(shù)據(jù)量大的線程劃分到一個(gè)線程類中,將會(huì)產(chǎn)生二級(jí)緩存訪問(wèn)沖突 的線程劃分到不同的類當(dāng)中,最后將不同的線程類映射至多核組,目的是最大 化二級(jí)緩存的訪問(wèn)命中。線程分配設(shè)計(jì)示意圖如圖3所示實(shí)時(shí)任務(wù)在劃分為 多個(gè)子線程后,將這些線程的共享關(guān)系傳遞給操作系統(tǒng),操作系統(tǒng)根據(jù)底層多 核的配置情況,計(jì)算出將線程分配給各個(gè)核的策略。3)優(yōu)化線程切換
對(duì)操作系統(tǒng)的線程切換模塊的地址重新進(jìn)行映射,將操作系統(tǒng)的線程切換
模塊的地址映射到Scratchpad Memory。利用處理器核上的Scratchpad Memory
部件,通過(guò)操作系統(tǒng)對(duì)線程切換模塊的控制,使得線程切換模塊不能被刷出內(nèi) 存,鎖住這部分代碼的緩存,使之永遠(yuǎn)能夠緩存訪問(wèn)命中以此來(lái)提升運(yùn)行效率。
權(quán)利要求
1.一種基于功能劃分的多線程共享多核處理器二級(jí)緩存的方法,其特征在于1)基于功能的多線程劃分根據(jù)程序的結(jié)構(gòu),將程序按照功能模塊進(jìn)行劃分,形成基于功能劃分的多線程;2)改進(jìn)操作系統(tǒng)的線程分配操作系統(tǒng)在啟動(dòng)的時(shí)候收集到關(guān)于多核處理器的所有信息,根據(jù)二級(jí)緩存的配置將處理器進(jìn)行分組;當(dāng)實(shí)時(shí)任務(wù)的開(kāi)發(fā)者將任務(wù)分解后的線程共享關(guān)系傳入操作系統(tǒng),操作系統(tǒng)根據(jù)這個(gè)共享關(guān)系和處理器的配置進(jìn)行線程的類別劃分;將共享數(shù)據(jù)量大的線程劃分到一個(gè)線程類中,將會(huì)產(chǎn)生二級(jí)緩存訪問(wèn)沖突的線程劃分到不同的類當(dāng)中,最后將不同的線程類映射至多核組;3)優(yōu)化線程切換對(duì)操作系統(tǒng)的線程切換模塊的地址重新進(jìn)行映射,將操作系統(tǒng)的線程切換模塊的地址映射到ScratchPad Memory。
全文摘要
本發(fā)明公開(kāi)了一種基于功能劃分的多線程共享多核處理器二級(jí)緩存的方法。是結(jié)合多核處理器上二級(jí)緩存的特點(diǎn),對(duì)程序進(jìn)行基于功能的多線程劃分,并在操作系統(tǒng)中設(shè)計(jì)了基于二級(jí)緩存共享的線程分配算法,提供劃分后任務(wù)的運(yùn)行支持。本發(fā)明實(shí)現(xiàn)了多核處理器上二級(jí)緩存的多線程共享,可以大大提升系統(tǒng)實(shí)時(shí)任務(wù)的性能,從而降低系統(tǒng)的激勵(lì)-響應(yīng)周期;多線程可以同時(shí)運(yùn)行在系統(tǒng)上,將大大縮短整個(gè)任務(wù)的運(yùn)行時(shí)間。
文檔編號(hào)G06F9/46GK101286139SQ20081006216
公開(kāi)日2008年10月15日 申請(qǐng)日期2008年6月3日 優(yōu)先權(quán)日2008年6月3日
發(fā)明者嚴(yán)力科, 馮德貴, 章鐵飛, 威 胡, 蔣冠軍, 斌 謝, 劍 陳, 陳天洲, 項(xiàng)凌祥, 黃江偉 申請(qǐng)人:浙江大學(xué)