• <nav id="zi37o"></nav>
    1. <dd id="zi37o"></dd>

      <th id="zi37o"></th>
      <em id="zi37o"></em>

    2. 博客專欄

      EEPW首頁 > 博客 > CPU性能測試基準(Dhrystone)學習

      CPU性能測試基準(Dhrystone)學習

      發布人:電子禪石 時間:2023-08-22 來源:工程師 發布文章
      簡介

      Dhrystone是測量處理器運算能力的最常見基準程序之一,常用于處理器的整型運算性能的測量。程序是用C語言編寫的,因此C編譯器的編譯效率對測試結果也有很大影響。

      Dhrystone是由Reinhold P. Weicker在1984年提出來的一個基準測試程序,其主要目的是測試處理器的整數運算和邏輯運算的性能。Dhrystone首先用Ada語言發布,后來Rick Richardson為Unix開發了用C語言編寫的Version 1.1,這個版本也成功的推動了Dhrystone的廣泛應用。
        Dhrystone標準的測試方法很簡單,就是單位時間內跑了多少次Dhrystone程序,其指標單位為DMIPS/MHz。MIPS是Million Instructions Per Second的縮寫,每秒處理的百萬級的機器語言指令數。DMIPS中的D是Dhrystone的縮寫,它表示了在Dhrystone標準的測試方法下的MIPS。
        關于DMIPS有一個不得不注意的點,因為歷史原因我們把在VAX-11/780機器上的測試結果1757 Dhrystones/s定義為1 DMIPS,因此在其他平臺測試到的每秒Dhrystones數應除以1757,才是真正的DMIPS數值,故DMIPS其實表示的是一個相對值。

      源碼獲取

      核心程序下載 http://www.roylongbottom.org.uk/classic_benchmarks.tar.gz 

      核心程序包下載后,在\classic_benchmarks\source_code\dhrystone2\下可找到源代碼。詳細文件目錄如下:

      \classic_benchmarks\source_code\dhrystone2
                                                \dhry.h          --關于兼容性的原型定義
                                                \dhry_1.c        --主程序入口
                                                \dhry_2.c        --算法子程序
                                                
      如果是移植到ARM Cortex-M平臺下裸系統運行,一般只需要簡單修改dhry.h和dhry_1.c文件即可,Dhrystone本身并沒有太多移植工作,其源碼本是用作在PC上運行的,而在嵌入式系統里運行僅需要把一些文件I/O的相關代碼刪除即可,此外就是計時函數和打印函數的重實現。
      MIPS: million instruction per second,表示每秒多少百萬條指令,如 10MIPS ,
              表示每秒一千萬條指令。
      MIPS/MHz : 表示 CPU 在每 1MHz 的運行速度下可以執行多少個MIPS ,
              如 10MIPS/MHz,表示如果 CPU 運行在 1MHz 的頻率下,每秒可執行一千萬條指令,
              如果 CPU 運行在 5MHz 的頻率下,每秒可執行五千萬條指令。
      DMIPS: Dhrystone MIPS,并非字面上每秒百萬條指令的意思。
           它是一個測量CPU運行一個叫Dhrystone(整數運算)的測試程序時表現出來的
           相對性能高低的一個單位(很多場合人們也習慣用MIPS作為這個性能指標的單位)。
      缺陷
      • 它的代碼與具有代表性的實際程序代碼并不相同。

      • Dhrystone代碼量過小,在現代CPU中,它能夠被放進指令緩存中,所以它并不能嚴格的測量取指性能。

      • 它易受編譯器影響。

      舉例來說,在Dhrystone中有大量的字符串復制語句,用來測量字符串復制的性能。然而Dhrystone中字符串的長度不變,并且均開始于自然對齊的邊界,這兩點便與真實的程序不同。因此一個優化性能好的編譯器能夠在去掉循環的情形下通過一連串字的移動替代對字符串的復制,這將會塊很多,可能會高達30%。所以我們在編譯測試程序的時候,如果指定編譯器的優化等級的話,我們會發現在不同的優化登記下,表現出來的性能指標會有差別,優化等級越高,性能指標越好

      *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



      關鍵詞: Dhrystone

      技術專區

      關閉
      日韩碰撞无码视频

    3. <nav id="zi37o"></nav>
      1. <dd id="zi37o"></dd>

        <th id="zi37o"></th>
        <em id="zi37o"></em>