Cache結構的低功耗可重構技術(shù)研究
2.2 動(dòng)態(tài)重構算法
在程序運行過(guò)程中,通過(guò)軟件監測自動(dòng)選擇優(yōu)化的Cache結構。一般采用啟發(fā)式算法,即根據程序過(guò)去執行的狀況預測未來(lái)的運行情況,并為其配置相應的優(yōu)化結構。重構流程是:在程序運行的時(shí)候,CPU按固定的時(shí)間間隔檢查一系列的硬件計數器;這些計數器記錄上一時(shí)間段內的Cache缺失率和分支跳轉的發(fā)生頻率,如果改變的程度超過(guò)設定閾值則進(jìn)入重構過(guò)程,否則程序繼續運行。
圖3是可重構算法的狀態(tài)圖。RESET為程序開(kāi)始運行時(shí)的初始狀態(tài);UNSTABLE為非穩定狀態(tài),該狀態(tài)下進(jìn)行結構的搜索與重構;STABLE為選擇好優(yōu)化的Cache結構進(jìn)入穩定運行的狀態(tài);TRANSl,TRANS2為狀態(tài)相互切換時(shí)的中間狀態(tài)。圖4是在UNSTABLE狀態(tài)下的搜索流程。首先根據統計將各種配置的Cache結構按照失效率進(jìn)行排序。進(jìn)入重構搜索狀態(tài)后,如果引起重構的原因是失效率的上升,則沿著(zhù)排序表開(kāi)始,朝失效率降低的方向依次搜索新的Cache結構。如果引起重構的原因是程序分支頻率的改變,則需要搜索所有的Cache結構。
2.3 可重構Cache中問(wèn)題
(1)數據重名問(wèn)題
Cache中的數據重名問(wèn)題是指主存中同一地址的數據同時(shí)出現在Cache中兩個(gè)不同的位置。實(shí)地址Cache中本來(lái)不存在數字重名問(wèn)題,但引入可重構概念的同時(shí),也帶來(lái)了數據重名問(wèn)題。解決這一問(wèn)題的簡(jiǎn)單辦法是在Cache重構的時(shí)候讓Cache中的內容全部無(wú)效,需要寫(xiě)回的內容都進(jìn)行寫(xiě)回。但這樣會(huì )導致Cache性能下降,特別是在Cache重構比較頻繁的時(shí)候。但是如果動(dòng)態(tài)重構的指令片段較大,則影響比較小。
(2)映射錯誤問(wèn)題
Cache在重構時(shí),其組數量會(huì )變化,從而導致需要比較的Tag位的數量也發(fā)生變化,這會(huì )導致映射錯誤的出現。為了保證處于任何一種狀態(tài)的時(shí)候都有足夠的Tag來(lái)做比較,按照Tag位最長(cháng)的一種配置來(lái)保存Cache地址結構,也就是組數量最少的情況。這樣做雖然會(huì )增加一些無(wú)用的比較,但卻能避免刷新Cache帶來(lái)的性能損失。
結 論
本文在傳統Cache結構的基礎上分析了一種可重構Cache的體系結構及其動(dòng)態(tài)重構的配置算法,指出了可重構Cache可能會(huì )遇到的問(wèn)題。通過(guò)對傳統Cache結構的改進(jìn),在嵌入式處理器上實(shí)現Cache可重構技術(shù),這對嵌入式處理器的存儲器體系結構功耗優(yōu)化有著(zhù)重要意義??芍貥婥ache的設計方法具有非常好的低功耗潛力,也是目前計算機體系結構方面的研究熱點(diǎn)之一。
評論