基于退出退讓機制的共享高速緩存硬件資源訪問方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及計算機技術(shù)領(lǐng)域,具體涉及一種中央處理器單元中共享高速緩存中硬件資源分配訪問的方法。
【背景技術(shù)】
[0002]高速緩沖存儲器(Cache )是存儲器系統(tǒng)中最重要的部分之一。其是在計算機存儲系統(tǒng)的層次結(jié)構(gòu)中,介于中央處理器(CPU)和主存儲器(Main memory)之間用于彌補處理器與存儲器之間的速度差異。其特點是容量比較小但速度比主存高得多,接近于CPU的速度。
[0003]目前所有現(xiàn)代計算機都使用cache。而且大多數(shù)處理器都會額外增加一級cache,服務(wù)器級別的處理器中會采用三級cache結(jié)構(gòu),采用了 LI cache、L2 cache和L3 cache三個層次的cache結(jié)構(gòu),其訪問速度依次遞減,容量依次遞增,我們稱L3 cache為LLC (LastLevel Cache)即最后一級的高速緩存。在多核處理器(CMP,Chip mulitiprocessors)中,不同處理器都有自己的私有的上一級高速緩存(二級緩存時為Llcache,三級緩存時為Llcache和/或L2cache)但是多個處理器通過共有的最后一級高速緩存LLC來實現(xiàn)數(shù)據(jù)共享。由于最后一級高速緩存LLC被各核共享(Share),LLC中的數(shù)據(jù)和硬件資源都是所有訪存指令競爭的對象,所以一個核的活躍數(shù)據(jù)很有可能被其他核引發(fā)的缺失替換出共享Cache,導(dǎo)致系統(tǒng)性能下降。
[0004]現(xiàn)有技術(shù)中數(shù)據(jù)共享競爭控制可以通過指令或者軟件來實現(xiàn),如申請?zhí)枮?01410537569.1的中國發(fā)明專利中就公開了多核處理器共享緩存任務(wù)調(diào)度方法,提出了一種共享Cache驅(qū)動的任務(wù)調(diào)度方法,以提供合理的空間以提高多核處理器并發(fā)執(zhí)行任務(wù)能力,提升處理器性能。通過將共享高速緩存劃分為若干個共享高速緩存塊,并將劃分后共享高速緩存塊劃分給各個私有高速緩存。當(dāng)私有緩存中的訪存請求訪問資源時,首先對比共享高速緩存和私有高速緩存中各自擁有的共享高速緩存塊之和。如果共享高速緩存塊之和滿足該訪存請求對共享高速緩存的資源要求則該訪存請求可以訪問否則等待。上述技術(shù)方案的問題在于只是劃分了共享高速緩存提供給各個私有高速緩存實現(xiàn)一種硬件資源的分配調(diào)度,而沒有解決硬件資源的競爭以及由競爭引起的問題,特別是當(dāng)某個私有高速緩存中存在一個重要訪存請求,如何能夠相較于其他不重要的訪存請求優(yōu)先進(jìn)入共享高速緩存中,優(yōu)先訪問共享高速緩存硬件資源的問題。
【發(fā)明內(nèi)容】
[0005]為解決上述技術(shù)問題,本發(fā)明提供了一種多核處理器共享高速緩存硬件資源訪問方法,其目的是,解決訪存請求訪問共享高速緩存硬件資源的競爭以及由競爭導(dǎo)致引起的問題,特別是當(dāng)某個私有高速緩存中存在一個重要訪存請求,如何能夠相較于其他不重要的訪存請求優(yōu)先進(jìn)入共享高速緩存中,以及優(yōu)先訪問共享高速緩存硬件資源的問題。
[0006]為達(dá)到上述目的,本發(fā)明的技術(shù)方案如下:
基于退出機制的共享高速緩存硬件資源訪問方法,將多核處理器的高速緩存分為多個獨立運彳丁的私有尚速緩存和多個私有尚速緩存共孚的共孚尚速緩存,私有尚速緩存向共孚高速緩存中發(fā)送訪存請求,所述的訪存請求根據(jù)訪問共享高速緩存的優(yōu)先級進(jìn)行排序,通過以下步驟實現(xiàn)某個訪存請求優(yōu)先進(jìn)入共享高速緩存中:
步驟1、訪存請求進(jìn)入,各個私有高速緩存中的各個訪存請求按照時間順序并行進(jìn)入共享高速緩存中;
步驟2、訪存請求退出,當(dāng)某個訪存請求優(yōu)先級較高的隊列未進(jìn)入共享高速緩存中時,共享高速緩存將已進(jìn)入共享高速緩存中但優(yōu)先級較低的訪存請求按照晚進(jìn)入先退出的原則刪除;
步驟3、優(yōu)先級較高的訪存請求進(jìn)入,優(yōu)先級較高的訪存請求優(yōu)先進(jìn)入共享高速緩存中并且替換退出的訪存請求的位置;
步驟4、數(shù)據(jù)狀態(tài)更新;
步驟5、共享高速緩存向進(jìn)入的優(yōu)先級較高的訪存請求所在私有高速緩存反饋信息。
[0007]當(dāng)共享高速緩存中訪存請求已經(jīng)占滿時,某個私有高速緩存中標(biāo)記了某個訪問共享高速緩存硬件資源優(yōu)先級較高的訪存請求時,將通過上述方法實現(xiàn)替換優(yōu)先級較低并滿足晚進(jìn)入先退出原則的訪存請求,從而使得在私有高速緩存中某個訪問共享高速緩存硬件資源優(yōu)先級較高的訪存請求優(yōu)先進(jìn)入共享高速緩存中。
[0008]基于退讓機制的共享高速緩存硬件資源訪問方法,將多核處理器的高速緩存分為多個獨立運行的私有高速緩存和多個私有高速緩存共享的共享高速緩存,私有高速緩存向共享高速緩存中發(fā)送訪存請求,所述的訪存請求根據(jù)訪問共享高速緩存的優(yōu)先級進(jìn)行排序,通過以下步驟實現(xiàn)訪問優(yōu)先級高的訪存請求優(yōu)先在共享高速緩存中實現(xiàn)硬件資源訪問:
步驟1、訪存請求進(jìn)入共享緩存中,訪問優(yōu)先級高的訪存請求和訪問優(yōu)先級低的訪存請求按照時間順序進(jìn)入共享高速緩存中;
步驟2、訪存請求退讓步驟,當(dāng)某個消息訪問優(yōu)先級高的訪存請求按照進(jìn)入共享高速緩存時間訪問靠后時,按照早進(jìn)入先退讓的原則,將訪問優(yōu)先級最高的訪存請求迀移至進(jìn)入共享高速緩存最早的訪存請求之前;
步驟3、數(shù)據(jù)狀態(tài)更新;
步驟4、重復(fù)步驟2和步驟3 ;
步驟5、按照新的訪存請求順序訪問共享高速緩存硬件資源。
[0009]進(jìn)入共享高速緩存后訪問共享高速緩存硬件資源優(yōu)先級較低的訪存請求和訪問共享高速緩存硬件資源優(yōu)先級較高的訪存請求按照時間順序排序。此時通過上述方法按照早進(jìn)入先退讓的原則使某個優(yōu)先級較低的訪存請求退讓以實現(xiàn)優(yōu)先級較高的訪存請求第一個訪問共享高速緩存的硬件資源。
[0010]進(jìn)一步的,將本發(fā)明中基于退出機制的多核處理器的共享高速緩存進(jìn)入分配方法和基于退讓機制的多核處理器的共享高速緩存硬件資源訪問分配方法結(jié)合得到如下技術(shù)方案。實現(xiàn)某個私有高速緩存中訪問共享高速緩存硬件資源的優(yōu)先級高的訪存請求優(yōu)先進(jìn)入共享高速緩存中并優(yōu)先訪問共享高速緩存的硬件資源。
[0011]優(yōu)選的,所述私有高速緩存數(shù)量為三個。
[0012]基于退出退讓機制的共享高速緩存硬件資源訪問方法,將多核處理器的高速緩存分為多個獨立運行的私有高速緩存和多個私有高速緩存共享的共享高速緩存,私有高速緩存向共享高速緩存中發(fā)送訪存請求,所述的訪存請求根據(jù)訪問共享高速緩存的優(yōu)先級進(jìn)行排序,通過以下步驟實現(xiàn)某個私有高速緩存上的訪存請求優(yōu)先進(jìn)入共享高速緩存中并實現(xiàn)硬件資源訪問:
步驟1、訪存請求進(jìn)入,各個私有高速緩存中的各個訪存請求按照時間順序并行進(jìn)入共享高速緩存中;
步驟2、訪存請求退出,當(dāng)某個訪存請求優(yōu)先級較高的隊列未進(jìn)入共享高速緩存中時,共享高速緩存將已進(jìn)入共享高速緩存中但優(yōu)先級較低的訪存請求按照晚進(jìn)入先退出的原則刪除;
步驟3、優(yōu)先級較高的訪存請求進(jìn)入,優(yōu)先級較高的訪存請求優(yōu)先進(jìn)入共享高速緩存中并且替換退出的訪存請求的位置;
步驟4、數(shù)據(jù)狀態(tài)更新;
步驟5、訪存請求退讓步驟,當(dāng)優(yōu)先級較高的訪存請求按照進(jìn)入共享高速緩存時間訪問靠后時,按照早進(jìn)入先退讓的原則,將訪問優(yōu)先級最高的訪存請求迀移至進(jìn)入共享高速緩存最早的訪存請求之前;
步驟6、數(shù)據(jù)狀態(tài)更新;
步驟7、重復(fù)步驟5和步驟6 ;
步驟8、剩下的優(yōu)先級相同的訪存請求按照進(jìn)入共享高速緩存的時間順序排序;
步驟9、按照新的訪存請求順序訪問共享高速緩存硬件資源。
[0013]進(jìn)一步改進(jìn),某個私有高速緩存的隊列在一段時間內(nèi)始終沒有進(jìn)入共享高速緩存中,則按照晚進(jìn)早退出的原則選取在其他私有高速緩存中已經(jīng)進(jìn)入共享高速緩存中的某一訪存請求退出并刪除,而長時間沒有進(jìn)入共有高速緩存的訪存請求進(jìn)入共享高速緩存。
[0014]優(yōu)選的,一種基于退出退讓機制的共享高速緩存硬件資源訪問方法,將所述的方法應(yīng)用于具有四個私有高速緩存中,將處理器的高速緩存分為四個獨立運行的私有高速緩存和四個私有高速緩存共享的共享高速緩存,通過以下步驟實現(xiàn)訪問優(yōu)先級高的訪存請求優(yōu)先進(jìn)入共享高速緩存中:
步驟1、訪存請求優(yōu)先級排序步驟,四個私有高速緩存中分別存在訪存請求,將上述訪存請求分別定義為訪存請求A'、訪存請求B'、訪存請求C'和訪存請求D',上述若干個訪存請求并行存儲于不同的私有高速緩存中,并根據(jù)訪存請求優(yōu)先級排布規(guī)則將訪問共享高速緩存硬件資源的優(yōu)先級級別定義為訪存請求A'優(yōu)于訪存請求B'等于訪存請求C'不小于訪存請求D',訪存請求按時間順序進(jìn)入共享緩存時間設(shè)定為訪存請求D'早于訪存請求C'早于訪存請求B'早于訪存請求A' ;
步驟2、訪存請求退出步驟,訪存請求A'的優(yōu)先級高于訪存請求B'、訪存請求C'和訪存請求D',而訪存請求D'和訪存請求C'相較于訪存請求B'早進(jìn)入共享高速緩存中,則進(jìn)入優(yōu)先級低的訪存請求按照晚進(jìn)入先替換的原則,訪存請求B'將退出共享高速緩存并被刪除,而訪存請求A'將進(jìn)入替換訪存請求B'的位置進(jìn)入下一步訪存請求退讓步驟中;
步驟3、訪存請求退讓步驟,共享高速緩存完成上一個步驟后對隊列消息進(jìn)行更新