色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

關于CPU運行速度計算詳解

FPGA之家 ? 來源: 裸機思維 ? 作者:GorgonMeducer 傻孩子 ? 2021-04-09 18:19 ? 次閱讀

【說在前面的話】

相對人的感官來說CPU跑的太快了——即便是人們常常用來描述時間短暫的“一眨眼功夫”對CPU來說也是及其“漫長”的好幾百毫秒了——仔細想想有幾個人能在一秒鐘內連續眨十次眼睛呢?正因為如此,即便是超級循環里面順次執行的多個任務,在人類看來也往往是“一瞬間就執行完了”。那么CPU究竟跑的有多快呢?是很快、非常快還是快得不得了?如果我們繼續站在人類的視角考慮這個問題,其抽象程度無異于思考“無窮大究竟是多大”。

讓我們想象著周圍的時間相對你突然都慢了下來,從微處理器的視角重新審視這個世界。

【第一個參考點】

“1MHz就是 1us”

“1MHz就是1us”是一個基準概念,通過修改思考方式,我們就可以利用它快速而有效的解決很多實際問題。作為練習,我們來嘗試依次快速的回答以下幾個問題:

假設每個時鐘脈沖都對應一個指令周期:

已知系統頻率是1MHz,請問1us內有幾個指令周期?

已知系統頻率是12MHz,請問1us內有幾個指令周期?

已知系統頻率是11.3728MHz,請問1us內有幾個指令周期?

已知系統頻率是500KHz,請問1us內有幾個指令周期?

很顯然,如果你試圖首先計算出系統周期:

2ae6cb60-990f-11eb-8b86-12bb97331649.png

再用1us去相除:

2af41b44-990f-11eb-8b86-12bb97331649.png

這個過程已經慢了。

讓我們來換一種思維模式,既然1MHz對應1us(也就是1us對應一個指令周期),那么12MHz就是1MHz的12倍,1us時間內就有12個指令周期;同理可得,當系統頻率分別是11.3728MHz和500KHz(0.5MHz)的時候,1us時間內對應的指令周期數分別是11.3728個和0.5個。

借助這個等效,我們就可以對CPU的處理能力建立更多量化的感官,比如1ms的時間內,CPU能做多少事情呢?由于1ms等于1000us,對1MHz的系統來說,1ms可以完成1000個指令周期,12MHz的系統可以完成12000個指令周期。然而1000和12000這樣的數字對于只有十個手指的人類大腦來說還是太抽象了,因此我們更進一步,把指令周期換算成等效的代碼尺寸:

由于主流的微控制器其指令集中大多是單周期指令,我們不妨假設所有指令都是單指令周期的,這樣1個指令周期就對應一條指令;

假設每條指令都是2個字節大小(16位指令);

這樣,1ms時間內1MHz的系統可以運行大約2KB的代碼,一個12MHz的系統可以運行24KB的代碼,依次類推。

那么2KB是什么概念呢?如果你平時有留意編譯后的代碼尺寸,2KB大約是一個基礎驅動庫的尺寸,可以包含一個USART的驅動或者實現電源管理;而24KB幾乎是一個小型工程應用的尺寸了。

借助這些非常具體的數字,我們很容易拿它們和中斷處理程序進行比較,建立直觀的認識——比如:

中斷處理程序“執行的是不是足夠快”?

“丟中斷的風險究竟有多大”等等?

使用中斷接收外設數據的時候會不會發生丟失?

可以肯定的是,這種忽略循環和條件分支的評估方法幾乎是一個代碼的最差情況,也就是說,在1MHz的系統中對于一個1KHz的毫秒中斷,中斷處理程序越接近2KB,就說明系統越可能“丟中斷”。

在這種情況下,除非你通過編譯器提供的等效匯編代碼仔細的計算過實際的周期數,或者是通過perf_counter這樣的工具實際測量過代碼的周期消耗——確信時間上處理周期不會大于1ms且這期間不會存在其它中斷處理程序,否則你的中斷處理程序還是比2KB越小越好。

【一個真實的案例】

在一個72MHz的Cortex-M3/M4系統下,使用中斷模式來接收串口數據,波特率為115200的情況下:

最大允許屏蔽中斷多長時間?

中斷處理程序允許的理論最大安全尺寸是多少?

首先,我們要搞清楚系統的指令大小和指令集的周期數情況。以ARM Cortex M3/M4為例,其指令大部分為單周期指令,支持16位指令和32位指令。為了評估中斷處理程序的尺寸上線,我們可以分別以16位指令和32位指令為基礎計算出兩個結果作為參考范圍;

其次,系統頻率為72MHz,假設USART沒有硬件FIFO,則115200的波特率在典型的“1起始位+1終止位+無校驗位+8數據位”的配置下(每個數據幀對應10個bit),實際上對應最大11.52KB/s的數據率——或者說,USART完成中斷每秒鐘發生 11.52K次。至此,我們可以回答第一個問題,即在這一系統中最大允許屏蔽中斷多長時間——1/11.52KHz ≈87us。

也就是說,假設中斷屏蔽的時間為87us則中斷處理程序的理論最大尺寸范圍是(72 * 87 * 2)字節到(72 * 87 * 4)字節,即12.528KB到25.056KB之間。取最小值12KB。

結論,中斷處理程序及其調用的子函數,其尺寸總和至少要小于12KB才能確保115200波特率的接收完成中斷得到及時的響應。由于未考慮循環、分支以及其它任務的存在,以上結果僅用于粗略的快速評估,實際代碼通常應該遠小于這一上線值。當實際尺寸接近或者超過13KB時基本可以判定該系統存在無法及時穩定的響應中斷的可能——需要對代碼進行進一步的具體分析。

【結語】

“1MHz就是1us”的等效為我們提供了一個基準,建立了關于“CPU跑多快”最直觀的感受,同時也為評估代碼尺寸、系統可靠性提供了有力的參考。掌握了這個基準,作為一個合格的程序員,不應該僅憑人類的感覺毫無依據評價CPU的處理能力了,“72MHz足夠快了吧?”“我已經用了芯片的最高頻率”這種話再也不能輕易說了,我們應該定量而不是定性的去看待這類問題。
編輯:lyn

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

    關注

    68

    文章

    10901

    瀏覽量

    212654
  • 1Mhz
    +關注

    關注

    0

    文章

    4

    瀏覽量

    8935

原文標題:【實時性迷思】CPU究竟跑的有多快?

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MEMS加速度計的工作原理是什么

    MEMS加速度計的工作原理主要基于牛頓第二定律,即力等于質量乘以加速度。以下是對其工作原理的介紹: 一、核心部件與結構 MEMS加速度計的核心部件包括一個微小的質量塊、彈性元件(如彈簧梁)以及檢測器
    的頭像 發表于 11-20 10:09 ?930次閱讀

    有功率計還要速度計

    在討論是否在有功率計的情況下還需要速度計時,我們首先要明確功率計和速度計各自的功能和用途。   功率計主要用于測量和記錄設備或機器的輸出功率,即單位時間內所做的功。在許多領域,如汽車、電機、發電機等,了解設備的功率輸出是至關重要的,因為它直接關系到設備的性能和工作效
    的頭像 發表于 10-03 16:07 ?350次閱讀

    什么是CPU時鐘速度

    CPU時鐘速度,作為衡量CPU性能的關鍵指標之一,對于理解計算機處理速度具有重要意義。下面將從定義、作用、
    的頭像 發表于 09-26 15:40 ?867次閱讀

    CPU時鐘周期的組成和作用

    CPU時鐘周期是計算機體系結構中一個至關重要的概念,它直接關聯到CPU運行速度和性能。以下是對CPU時鐘周期的定義、組成和作用的詳細解析。
    的頭像 發表于 09-26 15:32 ?813次閱讀

    導熱硅脂對CPU散熱性能影響大嗎?

    CPU不涂硅脂CPU與散熱器之間的縫隙有空氣,導熱效率無法達到應有的效率,CPU相比涂了導熱膏的工作溫度會更高。當超過一定溫度,CPU可能自動降低自身
    的頭像 發表于 09-24 15:40 ?1062次閱讀

    EPSON工業級加速度計選型

    愛普生加速度計(Accelerometers)是一種工業級三軸輸出壓電式加速度傳感器,采用具有專利技術的雙音叉式石英傳感器元件和Quarts光刻技術,通過壓電效應來計算出諸如此類的內容物體運動的方向
    的頭像 發表于 09-19 15:31 ?337次閱讀
    EPSON工業級加<b class='flag-5'>速度計</b>選型

    激光測距儀如何改成速度計

    求助帖 請教各位大神。是否可以將激光測距儀,改裝成速度計。 即,通過加入時間運算,得出距離縮短的速度。或者增加的速度。 我的一個客戶,提出一個需求。可以檢測機床設備的進給速度。我想,激
    發表于 08-06 11:23

    筆記本電腦CPU選購指南:如何根據個人需求精準定位

    在挑選筆記本電腦的眾多考量中,CPU(中央處理器)的選擇無疑是核心中的核心。它不僅決定了機器的運行速度與性能表現,還直接影響到日常使用的流暢度及多任務處理的能力。本文將為您詳解如何根據個人需求與預算,在紛繁復雜的
    的頭像 發表于 07-15 14:56 ?1726次閱讀

    ESP32-S2的循環運行速度比ESP32慢很多是怎么回事?

    我想測試一下ESP32-S2的sqrtf的運算速度, 結果發現運行速度特別慢,sqrtf()需要3微秒以上,占用了接近1000個時鐘周期. 然后又寫了一個循環的測試.發現也很慢. 1000次循環
    發表于 06-21 17:11

    Anthropic 發布Claude 3.5 Sonnet模型運行速度是Claude 3 Opus的兩倍

    Anthropic 發布Claude 3.5 Sonnet最新模型 新模型在推理、知識和編碼能力評估方面超越了以前的版本和競爭對手GPT 4o模型,同時其運行速度是Claude 3 Opus的兩倍
    的頭像 發表于 06-21 15:43 ?879次閱讀
    Anthropic 發布Claude 3.5 Sonnet模型<b class='flag-5'>運行速度</b>是Claude 3 Opus的兩倍

    三軸加速度計LIS2DUX12開發(2)----靜態校準

    零偏是影響加速度計輸出精度的重要指標之一,零偏可分為靜態零偏和動態零偏 。靜態零偏也稱為固定零偏,通常經標定與補償減小靜態零偏。動態零偏是由于加速度計自身的缺陷或環境因素(如溫度、振動、電子干擾等
    的頭像 發表于 05-17 15:27 ?1304次閱讀
    三軸加<b class='flag-5'>速度計</b>LIS2DUX12開發(2)----靜態校準

    使用foc庫低速運行速度波動大的原因?

    我用的是4.3版本的庫,電機是帶霍爾的,電機低速運行時速度波動特別大,請大佬指點一下
    發表于 04-19 07:11

    關于STM32G473程序運行于Flash和Ram速度的疑問求解

    關于STM32G473程序運行于Flash和Ram速度問題,向大家請教一下。之前用的是F4系列的程序(沒有指定ram區),移植到G473里運行后發現
    發表于 04-12 07:18

    STM32上電啟動后,會有幾率出現程序運行速度變慢的現象,是為什么?

    大家好: 請教個問題,我上電啟動后,會有幾率出現程序運行速度變慢的現象,比如定時器1s閃爍一次燈,變成了5s閃爍一次。重新上電或軟復位后正常。 感覺是啟動時,STM32有幾率出現時鐘沒配置正確
    發表于 04-08 07:47

    stm32cubeide debug和release單片機運行速度不一樣,在哪里進行控制的?

    stm32cubeide debug模式和release模式單片機運行速度不一樣,在哪里進行控制的
    發表于 03-28 09:08
    主站蜘蛛池模板: 亚洲人成77777在线视频| 精品一区二区三区高清免费观看| 97蜜桃网123| 国产精品亚洲国产三区| 亚洲国产精麻豆| 97成人在线| 国产在线公开视频| 欧美残忍xxxx极端| 欧美xxxav| 亚洲国产精品免费观看| 爱暖暖1000部免费| 久久香蕉国产免费天天| 亚洲 欧美 清纯 校园 另类| good神马电影伦理午夜| 宝贝乖女好紧好深好爽老师| 久久国产高清字幕中文| 麻花传媒XK在线观看| 亚洲成人综合在线| 动漫美女被到爽了流| 欧洲老妇人bb| 5G年龄确认我已满18免费| 果冻传媒色AV国产播放| 我的漂亮朋友在线观看全集免费| ass女人下部欣赏| 刘梓晨啪啪啪| 一个人免费观看完整视频日本| 国产日韩欧美三级| 久久久中日AB精品综合| 暖暖 免费 日本 高清 在线1| 亚洲欧美中文字幕高清在线| 国产欧美精品一区二区色综合 | 亚洲人成影院在线播放| 国产精品自在在线午夜精品| 色综合久久五月| 野花社区视频WWW高清| 国产精品免费视频能看| 久久久免费观看| 亚洲这里只有精品| 护士的下面又湿又紧10P| 欧美最猛黑人AAAAA片| 24小时日本在线电影|