《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 探究存儲器特性以分析和預測應用處理器性能及功耗
探究存儲器特性以分析和預測應用處理器性能及功耗
摘要: 本文提供了一種簡單、經(jīng)濟的方法,能以可接受的精確度動態(tài)地表征應用的計算及存儲器的構成。
關鍵詞: 應用處理器 存儲器
Abstract:
Key words :

由于超快的CPU內核與相對慢的存儲器之間的速度差距在日漸增大,存儲器系統(tǒng)可能成為當前制約系統(tǒng)性能的主要瓶頸。此外,低功耗是另一個重要的設計考慮,尤其在電池供電設備與日俱增的情況下更是如此。低功耗意味著更長的電池續(xù)航時間和設備使用時間。在常見的應用場合,存儲器功耗通常占了應用處理器功耗相當大的一部分,而且,隨著存儲器設計日益復雜、容量增大、分層增多,存儲器功耗往往會迅速增加。因此,降低存儲器功耗非常有利于延長電池續(xù)航時間。為了更好地了解各種應用的固有行為,有必要探究存儲器的特性、建立存儲器模型,以判斷應用是否涉及頻繁的存儲器存取操作,甚至幫助預測應用的性能。

本文提供了一種簡單、經(jīng)濟的方法,能以可接受的精確度動態(tài)地表征應用的計算及存儲器的構成。

描述存儲器特性的方法

如果不涉及存儲器操作,那么CPU利用率應該隨著CPU內核的頻率呈線性關系,而應用成本(定義為CPU利用率和CPU頻率的乘積)應該保持恒定。但在考慮存儲器存取以后,CPU利用率就不再隨內核頻率呈線性關系了。在頻率較高時,存儲器對性能的影響往往更大,因為CPU要用更多的CPU周期等待存儲器的響應(這里我們假定,存儲器頻率不隨CPU頻率而變)。從這種意義上,應用可以分為兩種類型:計算限定型和存儲器限定型。

接下來,我們來講述如何用三種不同的方法表征存儲器特性,并幫助確定應用的CPU利用率。在此,硬件性能信息是通過查看性能監(jiān)視單元(Performance Monitoring Unit,簡稱PMU)來收集的。因此,Marvell的方法僅適用于有PMU硬件支持的系統(tǒng)。

1. 整體數(shù)據(jù)緩存失效率:直覺上,較高的數(shù)據(jù)緩存失效率意味著更大的存儲器流量。為了獲得數(shù)據(jù)緩存失效率的數(shù)值,我們需要監(jiān)視一級數(shù)據(jù)緩存和二級數(shù)據(jù)緩存(如果有的話)的存取操作和失效總數(shù)。

2. 主存儲器訪問率:外部存儲器控制器的占用率直接表明了存儲器的利用率。為了得 到主存儲器訪問率數(shù)值,必須收集兩種PMU信息:存儲器控制器被占用的周期總數(shù);監(jiān)視窗口中的周期總數(shù)。

3. 數(shù)據(jù)停頓率:流水線停頓主要由數(shù)據(jù)相關性引起,而數(shù)據(jù)不可用的原因是存儲器存取速度遠比CPU速度低。因此,流水線的停頓次數(shù)反映了存儲器的流量情況。此外,流水線停頓次數(shù)還表明了存儲器存取的重要性。并不是每次存儲器存取都對最終性能有關鍵影響,因此,持續(xù)跟蹤因數(shù)據(jù)相關性對性能造成影響的存儲器存取操作,是相當有用的。使用這種方法,可以監(jiān)視由數(shù)據(jù)相關性引起停頓的事件情況。此外,必須記錄總的周期數(shù),以計算每個窗口中的數(shù)據(jù)停頓率。

這些不同的方法從不同角度反映出存儲器的特性。我們能以合理的開銷使用一種方法或組合使用多種方法,以更有效地進行性能分析、做出更準確的預測。

在測試中,我們使用了Marvell的應用處理器,運行基于Linux的操作系統(tǒng),采用QVGA LCD顯示器作為測試平臺。該應用處理器包括兩級緩存。在本次研究中,我們專注于MP3、AAC+和H.264解碼器。

圖1顯示了對三種不同方法進行比較的結果。每張圖都包括兩條曲線:一條是啟動了二級(L2)緩存的情況;另一條則是禁用了二級緩存的情況。測試了三個CPU頻率。

http://www.eechina.com/images/default/attachimg.gif1.jpg

下載 (56.74 KB)


圖1:表征存儲器特性的三種方法

存儲器存取任務不繁重時,CPU利用率與內核頻率呈近似線性關系,因此內核頻率變化時,應用成本曲線(如負載曲線中所示)應與內核頻率曲線呈平直并行走向。L2緩存接通時,MP3和AAC+解碼器是很好的例子,因為MP3和AAC+解碼器僅引入很少量的存儲器存取操作,而且這些存取操作大多數(shù)都由L2緩存處理了。在沒有L2緩存的情況下,應用負載隨內核頻率升高而增大。我們還發(fā)現(xiàn),無論L2緩存接通還是斷開,緩存失效率在CPU頻率變化時,沒有顯著改變,這意味著,要表示存儲器的存取情況,整體數(shù)據(jù)緩存失效率不是一個非常有效的衡量指標。

直覺上,存儲器訪問率包含了與緩存失效率類似的系統(tǒng)信息量,因為緩存失效直接引發(fā)存儲器存取。不過,我們得到的結果表明,情況并非如此。例如,H.264 QCIF解碼器顯示了與H.264 QVGA解碼器類似的緩存失效率趨勢。但是與H.264 QCIF解碼器相比,H.624 QVGA解碼器在存儲器存取上所占應用時間的百分比要大得多。這再一次證明,只監(jiān)視緩存失效率是不夠的。如果總體緩存存取量微不足道,那么緩存失效率未必導致性能下降。沒有L2緩存的MP3解碼器是這種情況的一個很好的例子。另一方面,典型的緩存失效率可能導致大量存儲器存取操作。H.264 QVGA解碼器顯示了這種趨勢。

有些存儲器存取可能對性能發(fā)生關鍵的影響,另一些則可能影響不大。無論緩存失效率、總體緩存存取量,還是主存儲器訪問率,都無法用以區(qū)分存儲器存取是否對性能有關鍵影響。幸運的是,我們發(fā)現(xiàn),數(shù)據(jù)停頓率是一個非常好的指標。顯然,除了MP3解碼器,對所有其它應用,數(shù)據(jù)停頓率曲線與應用成本都是同步的。在我們所做的實驗中,數(shù)據(jù)停頓率是用來預測應用負載的最佳衡量指標。MP3解碼器的存儲器存取頻度極低,因此,在整體上存儲器存取操作非常少的情況下,即使存在一些能產(chǎn)生關鍵影響的存儲器存取操作,它對性能的影響也是微不足道的。

圖2提供了一種基于存儲器特性預測CPU利用率的算法。該算法首先檢查,存儲器訪問率是否低于預先定義的門限T1。如果是,我們就預測,CPU利用率與CPU頻率呈線性關系;否則,就分兩步預測CPU利用率:(1)與頻率成比例;(2)根據(jù)數(shù)據(jù)停頓率調整。在第二步,我們再引入兩個門限:T2和T3。為了采用這個算法,我們必須跟蹤主存儲器訪問率和數(shù)據(jù)停頓率。因此,最多必須監(jiān)視3種PMU信息:(a)外部存儲器控制器被占用的總周期數(shù);(b)由于數(shù)據(jù)相關性而導致流水線停頓的總次數(shù);(c)監(jiān)視窗口中的總周期數(shù)。(a)/(c)給出DDR%,而(b)/(c)給出Stall%。這種算法可以很容易納入電源管理框架中。

http://www.eechina.com/images/default/attachimg.gif2.jpg

下載 (23.96 KB)


圖2:一種簡單的性能預測算法。

本文結論

總之,如果整體上存儲器存取頻度可以忽略不計,那么就可以預測,CPU利用率與CPU頻率成比例。如果存儲器存取頻度并非微不足道,那么預測CPU利用率時,就應該同時使用數(shù)據(jù)停頓率。本白皮書是基于一篇會議論文撰寫的,該論文研究了有助于表征存儲器特性的3種存儲器指標,論文以此為基礎提出了一種改進性能預測的算法。未來的工作可能還包括:用更多應用做實驗;基于用戶輸入和/或更多系統(tǒng)反饋設計動態(tài)自適應門限,以此優(yōu)化我們的算法。

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。