<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設計應用 > 存儲器特性分析和預測應用處理器性能及功耗

          存儲器特性分析和預測應用處理器性能及功耗

          作者: 時間:2014-01-17 來源:網(wǎng)絡 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/226867.htm

          本文提供了一種簡單、經(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ù)停頓率。



          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();