Global Sources
電子工程專輯
 
電子工程專輯 > 記憶體/儲存
 
 
記憶體/儲存  

探究記憶體特性以分析和預測應用處理器性能及功耗

上網時間: 2012年05月17日     打印版  Bookmark and Share  字型大小:  

關鍵字:記憶體  CPU  多媒體  應用處理器  PMU 

作者:柏瑜

Marvell公司應用處理器主任工程師

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

本文提供了一種簡單、經濟的方法,能以可接受的精確度動態地表徵應用的運算及記憶體的構成。

描述記憶體特性的方法

如果不涉及記憶體作業,那麼CPU利用率應該隨著CPU核心的頻率呈線性關係,而應用成本(定義為CPU利用率和CPU頻率的乘積)應該保持恆定。但在考慮記憶體存取以後,CPU利用率就不再隨核心頻率呈線性關係了。在頻率較高時,記憶體對性能的影響往往更大,因為CPU要用更多的CPU週期等待記憶體的響應(這裡我們假定,記憶體頻率不隨CPU頻率而變)。從這種意義上,應用可以分為兩種類型:運算限定型和記憶體限定型。

接下來,我們來講述如何用三種不同的方法表徵記憶體特性,並幫助確定應用的CPU利用率。在此,硬體性能資訊是透過查看性能監視單元(Performance Monitoring Unit,簡稱PMU)來收集的。因此,Marvell的方法僅適用於有PMU硬體支援的系統。

1. 整體數據緩衝記憶體失效率:直覺上,較高的數據緩衝記憶體失效率意味著更大的記憶體流量。為了獲得數據緩衝記憶體失效率的數值,我們需要監視一級數據緩衝記憶體和二級數據快取記憶體(如果有的話)的存取作業和失效總數。

2. 主記憶體存取率:外部記憶體控制器的占用率直接顯示了記憶體的利用率。為了得 到主記憶體存取率數值,必須收集兩種PMU資訊:記憶體控制器被占用的週期總數;監視窗口中的週期總數。

3. 數據停頓率:管線停頓主要由數據相關性引起,而數據不可用的原因是記憶體存取速度遠比CPU速度低。因此,管線的停頓次數反映了記憶體的流量情況。此外,管線停頓次數還顯示了記憶體存取的重要性。並不是每次記憶體存取都對最終性能有關鍵影響,因此,持續追蹤因子據相關性對性能造成影響的記憶體存取作業,是相當有用的。使用這種方法,可以監視由數據相關性引起停頓的事件情況。此外,必須記錄總的週期數,以運算每個窗口中的數據停頓率。

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

在測試中,我們使用了Marvell的應用處理器,執行基於Linux的作業系統,採用QVGA LCD顯示器作為測試平台。該應用處理器包括二級快取記憶體。在本次研究中,我們專注於MP3、AAC+和H.264解碼器。

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


圖1:表徵記憶體特性的三種方法

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

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

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

圖2提供了一種基於記憶體特性預測CPU利用率的演算法。該演算法首先檢查,記憶體存取率是否低於預先定義的閾值T1。如果是,我們就預測,CPU利用率與CPU頻率呈線性關係;否則,就分兩步預測CPU利用率:(1)與頻率成比例;(2)根據數據停頓率調整。在第二步,我們再導入兩個閾值:T2和T3。為了採用這個演算法,我們必須追蹤主記憶體存取率和數據停頓率。因此,最多必須監視3種PMU資訊:(a)外部記憶體控制器被占用的總週期數;(b)由於數據相關性而導致管線停頓的總次數;(c)監視窗口中的總週期數。(a)/(c)給出DDR%,而(b)/(c)給出Stall%。這種演算法可以很容易納入電源管理框架中。


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

本文小結

總之,如果整體上記憶體存取頻度可以忽略不計,那麼就可以預測,CPU利用率與CPU頻率成比例。如果記憶體存取頻度並非微不足道,那麼預測CPU利用率時,就應該同時使用數據停頓率。本白皮書是基於一篇會議論文撰寫的,該論文研究了有助於表徵記憶體特性的3種記憶體指標,論文以此為基礎提出了一種改進性能預測的演算法。未來的工作可能還包括:用更多應用做實驗;基於用戶輸入和/或更多系統反饋設計動態自適應閾值,以此最佳化我們的演算法。





投票數:   加入我的最愛
我來評論 - 探究記憶體特性以分析和預測應用處理器...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首