片上多核處理器共享資源分配與調(diào)度策略研究綜述(三)
相關(guān)資料:
片上多核處理器共享資源分配與調(diào)度策略研究綜述(一)
片上多核處理器共享資源分配與調(diào)度策略研究綜述(二)
3 聯(lián)合調(diào)度
前面兩章分別對于共享緩存和DRAM 提出了相應(yīng)的調(diào)度算法,但這只是系統(tǒng)中眾多共享資源里最為重要的兩種。實際上在多線程環(huán)境下,線程還會對于其他包括系列總線和I/O 設(shè)備等共享資源進行爭奪,線程間互相干擾,對系統(tǒng)性能造成影響。
一方面,針對不同的共享資源獨立提出的調(diào)度算法間從效果上可能互相矛盾。例如,同一個線程在共享緩存和主存處分別表現(xiàn)出的訪存行為特征未必一致,再根據(jù)各自的調(diào)度策略,分別設(shè)定的優(yōu)先級可能相反,使得調(diào)度失效。另一方面,從不同層面提出的調(diào)度策略之間也可能存在矛盾。例如,底層硬件層面的調(diào)度對線程的優(yōu)化可能使得操作系統(tǒng)層面對于線程優(yōu)先級的設(shè)定反轉(zhuǎn)。因此,從全局出發(fā),綜合考慮所有共享資源,進行聯(lián)合調(diào)度是極有研究價值的。
Ebrahimi 等在文獻中為了解決線程的公平性問題,提出一個可以協(xié)調(diào)所有共享存儲資源的機制稱為公平性資源節(jié)源( fairness via sourcethrottling,FST),從而避免了需要為系統(tǒng)中每個共享存儲資源提出單獨的公平性機制。該機制使用前面在STFM中提到的線程減速比Mi=Tshd_i/Tsolo_i信息 , 用一組失效狀態(tài)信息寄存器(miss statusholding/informatiON registers,MSHRs)記錄各線程發(fā)向共享存儲系統(tǒng)的請求,請求得到服務(wù)后相應(yīng)寄存器清空,當沒有可用的MSHRs 時,則禁止該線程向共享存儲系統(tǒng)發(fā)送請求。系統(tǒng)的不公平性通過下式衡量:
當unfairness 超過某個設(shè)定閾值時,表示有線程的性能降低程度已經(jīng)嚴重影響到系統(tǒng)的公平性??梢酝ㄟ^調(diào)節(jié)可用MSHRs 數(shù)目來限制侵略性最強(或受影響最小)的線程向共享存儲系統(tǒng)發(fā)送訪存請求的速率,直到各線程的減速比基本保持一致水平,即unfairness 小于設(shè)定閾值,恢復受限制線程發(fā)送訪存請求的能力。這個方法從源頭上限制對共享存儲資源的不公平性使用,從而無需從單個共享存儲資源特別提出公平性的調(diào)度策略。
由于對DRAM 進行訪存的速度提升遠不及處理器速度的提升,訪存DRAM 所帶來的延遲常常是影響性能的一個關(guān)鍵因素。一個解決方案是,預(yù)測線程可能需要的數(shù)據(jù),在處理器實際用到該數(shù)據(jù)之前就發(fā)送訪存請求從DRAM 取回數(shù)據(jù)。該技術(shù)稱之為預(yù)取(prefetching),已被證明確實能夠有效改善系統(tǒng)性能,并被用于大多數(shù)商業(yè)處理器中。
然而,各個線程發(fā)向DRAM 的預(yù)取請求,同樣存在對于系統(tǒng)資源的爭奪和線程間的干擾,從而抵消由于預(yù)取部件所帶來的性能改善。Ebrahimi 等人在文獻中提出了分層預(yù)取侵略性控制( hierarchical prefetcher aggressiveness control ,HPAC),類似于文獻[24]中的FST,HPAC 通過從源頭上限制預(yù)取請求的發(fā)送來改善系統(tǒng)的預(yù)取性能。