在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

微控制器的性能分析技術的介紹與了解

電子設計 ? 來源:郭婷 ? 作者:電子設計 ? 2019-02-15 08:12 ? 次閱讀

基準測試讓您比較處理器,但仍有很多變化。理解和運行標準基準可以讓設計人員更好地了解和控制他們的應用程序。

比較微處理器從未如此簡單。即使比較通常具有相同基本架構的所有變體的處理器的臺式計算機或膝上型計算機也可能令人沮喪,因為與“更差”的數字相比,具有更快數字的計算機可能運行緩慢。在嵌入式世界中,事情變得更加艱難,其中處理器和配置的數量實際上是無限的。

基準測試是解決這一難題的常用方法。多年來,Dhrystone基準(Whetstone基準測試中的一個游戲,其中包括Dhrystone省略的浮點運算)是城里唯一的游戲。但是,它有許多重大問題。其中最主要的是它不反映任何實際計算,它只是試圖模仿各種操作的統計頻率。此外,編譯器通常可以在編譯時執行大部分計算,這意味著在運行基準測試時不必完成工作。

對基準測試的真正考驗是,在詳細查看結果(特別是那些最初看起來很奇怪的結果)時,您可以合理化為什么結果看起來像他們一樣。理想的基準測試將提供純粹反映處理器性能的分數,與系統的其他部分無關。不幸的是,這是不可能的,因為沒有處理器孤立地運行:所有處理器必須與內存交互 - 高速緩存,數據存儲器和指令存儲器,每個處理器可能會或可能不會以完整的處理器頻率運行。此外,這些處理器必須全部運行由編譯器生成的代碼,并且不同的編譯器生成不同的代碼。

即使是相同的編譯器也會根據編譯代碼時選擇的優化設置生成不同的代碼。這種差異是無法避免的,但要避免的主要是將實際的基準代碼優化掉。

盡管結果可能取決于編譯器和內存,但您應該只能根據處理器本身,編譯器(和設置)以及內存速度來解釋任何此類結果。 Dhrystone基準測試的情況并非如此。然而,嵌入式微處理器基準聯盟(EEMBC)最近的CoreMark基準測試已經克服了這些缺陷,并且被證明更加成功。點擊EEMBC在2009年開發并公開發布了CoreMark基準(現已由超過4,100名用戶下載)。它已經適用于眾多平臺,包括Android。開發人員特別注意避免舊基準測試的陷阱。通過查看CoreMark基準測試的工作原理以及一些示例結果,我們可以看到它不僅可以成為性能的可靠指標,還可以幫助確定微控制器和編譯器性能的改進位置。

CoreMark基準程序

CoreMark基準程序使用三種基本數據結構來表示實際工作。第一個結構是鏈表,它執行指針操作。第二個是矩陣;矩陣運算通常涉及嚴格優化的循環。最后,狀態機需要難以預測的分支,并且其結構比用于矩陣運算的循環要少得多。

為了保持盡可能多的嵌入式系統的可訪問性,無論大小,該程序都有2 kb的代碼占用空間。圖1說明了程序的工作原理。前兩個步驟可能看似微不足道,但它們實際上非常重要 - 它們是確保編譯器無法預先計算任何結果的步驟。直到運行時才知道要使用的輸入數據。

微控制器的性能分析技術的介紹與了解

圖1:CoreMark基準測試過程。

大部分基準工作負載發生在主工作循環中。掃描其中一個數據結構,即鏈表。每個條目的值確定是否要執行矩陣操作或狀態機操作。重復該決策操作步驟直到列表用盡。此時,單個迭代完成。重復工作循環直到至少10秒鐘。實施10秒要求以確保足夠的數據以提供有意義的結果。如果運行時間小于此值,那么基準程序將不會報告結果。但是,如果用戶在模擬器上運行基準測試,則可以修改此時間要求。

主要工作完成后,使用公共循環冗余校驗(CRC)功能;它可以作為一種自我檢查,以確保在執行過程中(偶然或其他方面)沒有出錯。假設一切都結束,程序將報告CoreMark結果。此數字表示每秒執行時間的主工作循環的迭代次數。點擊雖然大多數基準用戶都是誠實的,但確保任何基準測試方案都有針對濫用的保護措施始終是非常重要的。有人可以嘗試篡改結果的兩種主要方式:編輯代碼(在移植層內除外),因為代碼必須以源代碼形式提供,并且只是偽造結果。 CRC有助于檢測代碼損壞時可能出現的任何問題,并且EEMBC技術中心的認證是最終仲裁者。沒有人需要對他們的結果進行認證,但認證增加了顯著的可信度,因為它證實了中立的第三方獲得了相同的數字。

調整基準測試運行

當程序查找用于初始化數據的用戶參數時,您不會顯式提供原始數據。這將是太多的工作,它還將通過仔細選擇初始化數據開辟操縱的可能性。相反,程序會查找必須由用戶設置的三粒種值。

這些數字以對用戶不透明的方式指導數據結構中值的初始化。雖然它們充當“種子”,但沒有隨機因素。結構是完全確定的,并且具有相同種子的基準的多次運行將導致相同的執行和結果。

您可能還需要調整基準來考慮系統分配內存的方式。具有充足資源的系統可以簡單地使用heap和malloc()調用。這允許在需要時進行每次內存分配,并確保所需的內存量。然而,這種靈活性需要付出代價,更好的系統需要更快的方式來使用內存。

最快的方法是完全預分配內存,但使用不可行的鏈表操作。中間方法是創建許多預定義的內存塊(內存池),可以根據需要進行分配。權衡是你不能選擇每個塊中有多少內存 - 你得到一個固定大小的塊。移植層允許您使基準測試適應被評估系統上使用的內存分配方案的類型。并行性是您可以利用的另一個特性,如果您的系統支持它。您可以為并行操作構建CoreMark基準,指定在執行期間生成的上下文(線程或進程)的數量。但是,您應該避免使用CoreMark來表示處理器的多核性能,因為由于其小尺寸,該基準測試肯定會線性擴展99.9%。

了解結果

當然,這是您對基準測試結果所做的事情,可能導致混淆(有意或無意)。出于這個原因,EEMBC強加了嚴格的報告要求。 CoreMark網站http://www.coremark.org提供了報告結果的位置,您不能只輸入一個CoreMark分數。還有一些其他關鍵變量可能會影響您的結果。

最大的是使用的編譯器和編譯基準時設置的選項。您必須在提交結果時報告該信息

第二個主要影響因素是分配內存的方式 - 如果它不是堆(malloc),您必須報告所采用的方法。

第三個因素,在相關時,是并行化。您必須報告創建的上下文的數量。

還有另一種方法可以報告結果。您可以將時鐘頻率標準化,而不是指定原始CoreMark值,以便專注于架構效率。這是一個CoreMark/MHz值,用于衡量每百萬個時鐘周期的迭代次數。如果報告此編號,則還必須報告相對于處理器時鐘速度的內存速度。如果可以相對于處理器頻率配置高速緩存頻率,則還必須報告該配置。

查看某些特定結果可以幫助顯示各種所需報告元素如何與不同的基準分數相關聯,以及在報告結果時識別這些元素的重要性。隨后的所有數字均來自CoreMark網站上公開的結果列表。

編譯器版本的簡單影響可以在表1的結果中看到。使用較新的編譯器版本,ADI公司的處理器顯示速度提高了10%,可能表明新編譯器的工作做得更好。 Microchip示例顯示了兩個更遠的GNU C編譯器(gcc)版本之間的差異。對于兩個恩智浦處理器,所有編譯器都是同一版本的微妙變體,從而最大限度地減少了差異。

ProcessorCompilerCoreMark/MHz模擬器件BF536gcc 4.1.21.01gcc 4.3.31.12Microchip PIC32MX36F512Lgcc 3.4.4 MPLAB C32 v1.00-200710241.90gcc 4.3.2(Sourcery G ++ Lite 4.3-81)2.30NXP LPC1114Keil ARMcc v4.0.0.5241.06gcc 4.3 .3(紅色代碼)0.98NXP LPC1768ARM CC 4.01.75Keil ARMCC v4.0.0.5241.76表1:不同編譯器對CoreMark結果的影響。即使使用相同的編譯器,不同的設置當然會產生不同的結果因為編譯器試圖以不同方式優化程序。表2顯示了一些示例結果。

ProcessorCompilerSettingsCoreMark/MHzMicrochip

PIC24JF64GA004gcc 4.0.3 dsPIC030,Microchip v3_20-Os -mpa1.01-031.12Microchip

PIC24HJ128GP202gcc 4.0.3 dsPIC030,Microchip v3.12-031.86-mpa1.29Microchip

PIC32MX36F512Lgcc 4.4.4 MPLAB C32 v1.00-20071024-021.71-031.90表2:更改編譯器設置會產生不同的CoreMark結果。

第一個例子(PIC24JF64GA004),針對較小的代碼尺寸進行優化需要降低約10%的基準性能。在第二種情況下,差異更為顯著,在設置過程抽象優化標志(-mpa)時運行速度降低30%。最后一個處理器上的編譯器設置之間的差異也反映了優化量的差異,從-O3設置提供的更高速度優化中獲益大約10%。

內存的影響可以在表3中看到。在第一種情況下,當時鐘頻率超過閃存可以處理的頻率時,會引入等待狀態,從而降低CoreMark/MHz數量。類似地,在第二種情況下,DRAM無法跟上50 MHz以上的處理器,因此存儲器和處理器之間的時鐘頻率比降至1:2,從而降低了CoreMark/MHz數量。

ProcessorClock

SpeedMemory NotesCoreMark/MHzCoreMarkTI OMAP 3530500Code in FLASH2.4212106002.191314TI Stellaris LM3S9B96 Cortex M3501:1內存/CPU時鐘不可能超過50 Mhz1.9296801.60128表4:更改緩存大小對CoreMark結果的影響。 》然而,在這兩種情況下,時鐘頻率的增加都大于運行效率的降低,因此原始CoreMark數量仍然隨著時鐘頻率的增加而增加;它只是沒有像頻率那樣增加。點擊最后,緩存大小的影響可以在表4中看到。這里,代碼適合第一個配置的2 kb緩存,但它完全填充緩存。堆棧上的所有函數參數都不適合,因此會有一些緩存未命中。在第二種情況下,緩存具有兩倍的容量,這意味著它不會遇到與第一個示例中相同的緩存未命中,從而為其提供更好的分數。

ProcessorCompilerCoreMark/MHzAnalog器件BF536gcc 4.1.21.01表3:內存設置對CoreMark結果的影響。

請注意,與第一種情況的三級流水線相比,第二種情況有五級流水線。由于狀態機示例的廣泛分支,較長的管道應該導致性能下降。當分支被錯誤預測時,較長的管道需要更長的時間來重新填充。因此,較高的CoreMark分數表明較大的緩存超過了這種降級。

所有這些例子中的得分都證明了兩個事實。首先,單個數字(在本例中為CoreMark/MHz)可以準確地表示底層微控制器架構的性能;后面的例子清楚地表明了這一點。其次,背景是重要的。編譯器可以影響它生成的代碼執行的程度。這幾乎應該是顯而易見的 - 人們花費大量時間來開發和改進編譯器以改進他們創建的結果,但“好”結果取決于您的目標是快速代碼還是小代碼。更快的代碼將運行得更快,更小的代碼將不會運行(除非它實際上有助于優化內存或緩存利用率)。但是,這些例子顯示的最重要的事情是結果之間的差異有合理的解釋。它們不是由一些實際的基準測試代碼引起的,這些代碼可能有利于一個微控制器架構而不是另一個,或者是編譯器直接丟棄代碼。從這個意義上講,CoreMark基準測試是公平和平衡的,可以真實地反映編譯器和體系結構,而且只能反映編譯器和體系結構。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7576

    瀏覽量

    151727
  • 處理器
    +關注

    關注

    68

    文章

    19382

    瀏覽量

    230484
  • 編譯器
    +關注

    關注

    1

    文章

    1638

    瀏覽量

    49197
收藏 人收藏

    評論

    相關推薦

    LPC微控制器產品族譜

    。Kinetis與LPC系出同門,雙劍合璧,有助于恩智浦在競爭激烈的MCU戰場,開疆擴土,大顯神威。本文介紹了LPC系列微控制器產品架構、性能特色和適用領域,希望有助于大家了解這個系列
    發表于 06-13 11:34

    AT32微控制器硬件設計指南及抗EMC設計要點

    本應用筆記為使用AT32系列微控制器芯片的硬件設計人員提供參考設計,包括供電電源要求、時鐘管理、復位管理、調試接口的管理。它說明了使用AT32系列微控制器芯片所需的最低硬件資源。文中介紹了有關硬件
    發表于 10-25 07:54

    如何讓微控制器性能發揮極限

    如何讓微控制器性能發揮極限如今微控制器需要執行廣大范圍的任務,包括管理實時控制算法、解碼高速通信協定,以及處理高頻傳感發出的信號
    發表于 03-16 14:40 ?606次閱讀
    如何讓<b class='flag-5'>微控制器</b><b class='flag-5'>性能</b>發揮極限

    微控制器的開發方案

    微控制器的開發方案 微控制器開發團隊與編譯開發人員的合作成果是生成的代碼效率更高,性能更好。本文介紹的是為了使ATMEL AVR
    發表于 05-04 10:36 ?959次閱讀
    <b class='flag-5'>微控制器</b>的開發方案

    提高微控制器EMC性能的軟件技術

    提高微控制器EMC性能的軟件技術,不錯的文章。免積分
    發表于 11-02 10:18 ?26次下載

    基于Cortex-M0微控制器概述及性能分析

    基于Cortex-M0微控制器概述及性能分析
    發表于 10-13 15:10 ?6次下載
    基于Cortex-M0<b class='flag-5'>微控制器</b>概述及<b class='flag-5'>性能</b><b class='flag-5'>分析</b>

    基于MAXQ3120微控制器性能特點與應用分析

    監視系統的設計者和廠商一直希望微控制器能夠為日常監視應用提供不斷增加的通用功能,包括滿足用電計量、汽車監控、數據搜集和傳感調節等方面的要求。maxq3120 就是為了滿足這些要求而開發的低功耗、高速微控制器。它的主要
    的頭像 發表于 07-22 08:09 ?1744次閱讀
    基于MAXQ3120<b class='flag-5'>微控制器</b>的<b class='flag-5'>性能</b>特點與應用<b class='flag-5'>分析</b>

    如何使用微控制器測量電容

    微控制器已不是新興事物,對于微控制器,大家或許都有所了解。在往期文章中,小編對微控制器做過一定介紹。為進一步增進大家對
    的頭像 發表于 06-27 16:04 ?3520次閱讀
    如何使用<b class='flag-5'>微控制器</b>測量電容

    微控制器到底是什么?微控制器有怎么樣的應用

    微控制器的使用已滲透入生活各方面,為增進大家對微控制器了解,本文將對微控制器微控制器應用予以介紹
    的頭像 發表于 06-27 10:25 ?1.2w次閱讀

    什么是微控制器?如何編程微控制器

    微控制器進行編程或刻錄意味著“將程序從編譯傳輸到微控制器的存儲”。微控制器的程序通常是用C或匯編語言編寫的,最后編譯
    的頭像 發表于 08-21 15:40 ?1w次閱讀

    AN1015_提高微控制器EMC性能的軟件技術

    AN1015_提高微控制器EMC性能的軟件技術
    發表于 11-21 17:07 ?0次下載
    AN1015_提高<b class='flag-5'>微控制器</b>EMC<b class='flag-5'>性能</b>的軟件<b class='flag-5'>技術</b>

    STM32微控制器技術特點和性能指標

      STM32微控制器是ST公司推出的一款基于ARM Cortex-M內核的32位微控制器,具有高性能、低功耗、高集成度等特點,廣泛應用于各種嵌入式系統。本文將對STM32微控制器
    發表于 09-25 17:16 ?4391次閱讀

    微控制器基礎】—— 從歷史切入,了解微控制器的五個要素(下)

    微控制器基礎】—— 從歷史切入,了解微控制器的五個要素(下)
    的頭像 發表于 12-06 17:23 ?600次閱讀
    【<b class='flag-5'>微控制器</b>基礎】—— 從歷史切入,<b class='flag-5'>了解</b><b class='flag-5'>微控制器</b>的五個要素(下)

    微控制器基礎】——從歷史切入,了解微控制器的五個要素(上)

    微控制器基礎】——從歷史切入,了解微控制器的五個要素(上)
    的頭像 發表于 12-07 10:55 ?619次閱讀
    【<b class='flag-5'>微控制器</b>基礎】——從歷史切入,<b class='flag-5'>了解</b><b class='flag-5'>微控制器</b>的五個要素(上)

    微控制器的結構和應用

    微控制器(Microcontroller Unit,簡稱MCU)作為嵌入式系統的核心部件,其原理和應用在現代科技發展中占據了舉足輕重的地位。本文將從微控制器的原理、基本結構、工作原理、性能特點以及廣泛的應用領域等方面進行詳細闡述
    的頭像 發表于 08-22 10:40 ?1236次閱讀
    主站蜘蛛池模板: 亚洲成a人片77777潘金莲| 天堂综合网| 欧美社区| 天天操天天操天天操香蕉| 天天射天天干天天色| 天天摸天天做天天爽在线| 女人又色又爽又黄| 大学生一级特黄的免费大片视频| 在线免费观看色片| 真爽~张开腿~让我插| 美女扒开下面让男人捅| 亚洲伊人99综合网| 日本网站黄色| 狠狠色欧美亚洲狠狠色www| 青草视频在线观看国产| 女张腿男人桶羞羞漫画| 欧美天堂在线视频| 四月婷婷七月婷婷综合| 青楼社区51在线视频视频| 国内a级毛片免费···| 激情综合五月| 激情综合五月网| 1024视频色版在线网站| 美女丝袜长腿喷水gif动态图| 日xxxx| 国产精品区在线12p| 精品国产1000部91麻豆| 色婷婷在线观看视频| 色香视频在线| 美女国产在线观看免费观看| china国语对白刺激videos| 能看的黄网| 亚洲一区小说区中文字幕| 亚洲 欧美 另类 吹潮| 欧美一区二区影院| 888米奇色狠狠俺去啦| 国产在线免| 国产精品久久久久久久人热| 日本一区二区精品88| freesex欧美| 国产大片免费观看资源|