衡阳派盒市场营销有限公司

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

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

3天內不再提示

為什么有些CPU的主頻更低,但運算效率卻更高?

Q4MP_gh_c472c21 ? 來源:strongerHuang ? 作者:strongerHuang ? 2021-01-21 09:45 ? 次閱讀

為什么有些CPU的主頻更低,但運算效率卻更高呢?

比如:51單片機30M主頻,STM32單片機20M主頻,執行相同一段代碼可能主頻更低的STM32所花的時間更短。

這里就牽涉到CPU流水線的問題,本文圍繞CPU流水線描述相關內容。

一、早期CPU流水線

1.流水線來源

流水線的概念來源于工業制造領域,以汽車裝配為例來解釋流水線的工作方式,假設裝配一輛汽車需要四個步驟:

1.沖壓:制作車身外殼和底盤等部件; 2.焊接:將沖壓成形后的各部件焊接成車身; 3.涂裝:將車身等主要部件清洗、化學處理、打磨、噴漆和烘干; 4.總裝:將各部件(包括發動機和向外采購的零部件)組裝成車;

汽車裝配需要沖壓、焊接、涂裝和總裝四個工人,最簡單的方法是一輛汽車依次經過上述四個步驟裝配完成之后,下一輛汽車才開始進行裝配,最早期的工業制造就是采用的這種原始的方式,即同一時刻只有一輛汽車在裝配。

不久之后人們發現,某個時段中一輛汽車在進行裝配時,其它三個工人都處于閑置狀態,顯然這是對資源的極大浪費,于是思考出能有效利用資源的新方法,即在第一輛汽車經過沖壓進入焊接工序的時候,立刻開始進行第二輛汽車的沖壓,而不是等到第一輛汽車經過全部四個工序后才開始,這樣在后續生產中就能夠保證四個工人一直處于運行狀態,不會造成人員的閑置。這樣的生產方式就好似流水川流不息,因此被稱為流水線。

2.CPU流水線

1989 年推出的 i486 處理器引入了五級流水線。這時,在 CPU 中不再僅運行一條指令,每一級流水線在同一時刻都運行著不同的指令。這個設計使得 i486 比同頻率的 386 處理器性能提升了不止一倍。

五級流水線中的取指階段將指令從指令緩存中取出(i486 中的指令緩存為 8KB);

第二級為譯碼階段,將取出的指令翻譯為具體的功能操作;

第三級為轉址階段,用來將內存地址和偏移進行轉換;

第四級為執行階段,指令在該階段真正執行運算;

第五級為退出階段,運算的結果被寫回寄存器或者內存。

由于處理器同時運行了多條指令,大大提升了程序運行的性能。

二、CPU流水線技術

CPU流水線技術是一種將指令分解為多步,并讓不同指令的各步操作重疊,從而實現幾條指令并行處理,以加速程序運行過程的技術。

指令的每步有各自獨立的電路來處理,每完成一步,就進到下一步,而前一步則處理后續指令。

0fe530da-57de-11eb-8b86-12bb97331649.jpg

采用流水線技術后,并沒有加速單條指令的執行,每條指令的操作步驟一個也不能少,只是多條指令的不同操作步驟同時執行,因而從總體上看加快了指令流速度,縮短了程序執行時間。

流水線技術是通過增加計算機硬件來實現的。它要求各功能段能互相獨立地工作,這就要增加硬件,相應地也加大了控制的復雜性。如果沒有互相獨立的操作部件,很可能會發生各種沖突。例如要能預取指令,就需增加指令的硬件電路,并把取來的指令存放到指令隊列緩沖器中,使微處理器能同時進行取指令和分析、執行指令的操作。

---來自百度百科

三、流水線與代碼執行效果

為什么說同主頻的51單片機相比STM32執行效率低呢?

除了大家認為的8位和32位寬度區別之外,還有一個就是51單片機不支持流水線(也可以理解為單流水線),而STM32支持流水線。

Cortex‐M3處理器使用一個 3 級流水線。流水線的 3 級分別是:取指、解碼和執行, 如圖:

1018fd0c-57de-11eb-8b86-12bb97331649.png

通過下面一張圖來對比單流水線和多級流水線,你就更能明白為什么51單片機執行效率低了。

10548656-57de-11eb-8b86-12bb97331649.jpg

四、多級流水線優缺點

并非在所有情況下流水線技術都起作用。可能有一些缺點。如果一條指令流水線能夠在每一個時脈周期接納一條新的指令,被稱為完整流水線(fully pipelined)。因流水線中的指令需要延遲處理而要等待數個時脈周期,被稱為非完整流水線。

當一名程序員(或者組合者/編譯者)編寫組合代碼(或者匯編碼)時,他們會假定每個指令是循序運行的。而這個假設會使流水線無效。當此現象發生后程序會表現的不正常,而此現象就是危害。不過當前有提供幾種技術來解決這些危害像是轉發與延遲等。

1.優點

減少了處理器執行指令所需要的時脈周期,在通常情況下增加了指令的輸入頻率(issue-rate)。

一些集成電路,例如加法器或者乘法器,通過添加更多的環路使其工作得更快,如果以流水線替代,能相對地減少環路。

2.缺點

流水線處理器設計復雜度更高、生產成本更高;

流水線的處理器必須在數據路徑中添加額外觸發器。

非流水線處理器有固定指令位寬,流水線處理器的性能更難以預測,并且不同的程序之間的變化可能更大。

原文標題:為什么CPU流水線會提高代碼執行效率?

文章出處:【微信公眾號:嵌入式ARM】歡迎添加關注!文章轉載請注明出處。

責任編輯:haq

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

    關注

    6043

    文章

    44621

    瀏覽量

    638567
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10904

    瀏覽量

    213020
  • 代碼
    +關注

    關注

    30

    文章

    4827

    瀏覽量

    69053

原文標題:為什么CPU流水線會提高代碼執行效率?

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    24W電源芯片U6120D實踐更高的性能與更低的成本

    24W電源芯片U6120D 實踐更高的性能與更低的成本 STEP01 芯片綠色節能模式?是指通過優化芯片設計和技術手段,以減少芯片在運行過程中的能耗,從而達到節能減排的目的。這種模式主要依賴于先進
    的頭像 發表于 11-27 11:00 ?356次閱讀

    CPU主頻是什么意思

    CPU主頻,作為計算機處理器性能的一個重要指標,承載著豐富的技術內涵與實際應用價值。以下是對CPU主頻的詳細解析,包括其定義、用途、技術原理、影響因素以及在多個領域的實際應用。
    的頭像 發表于 09-26 15:50 ?2489次閱讀

    CPU時鐘周期與主頻的關系和區別

    CPU時鐘周期與主頻是計算機體系結構中兩個緊密相連且至關重要的概念,它們之間既存在關系又有所區別。以下將詳細闡述CPU時鐘周期與主頻的關系和區別。
    的頭像 發表于 09-26 15:46 ?2062次閱讀

    雙核cpu和單核cpu的區別

    雙核CPU與單核CPU在多個方面存在顯著差異,這些差異主要體現在處理能力、性能、運行效率、功耗以及適用場景等方面。 一、概念與結構 雙核CPU :指在一個處理器上集成兩個
    的頭像 發表于 09-24 16:17 ?3971次閱讀

    提高高開關頻率下更高負載的效率應用報告

    電子發燒友網站提供《提高高開關頻率下更高負載的效率應用報告.pdf》資料免費下載
    發表于 09-13 09:33 ?0次下載
    提高高開關頻率下<b class='flag-5'>更高</b>負載的<b class='flag-5'>效率</b>應用報告

    CPU主要參數有哪些

    CPU(Central Processing Unit,中央處理器)是計算機系統的核心部件,負責執行程序指令、處理數據和進行邏輯運算CPU的參數繁多,其中一些關鍵參數對于理解和選擇
    的頭像 發表于 09-10 11:51 ?1709次閱讀

    使用TPS25961獲得性能更高、空間更小、成本更低的保護功能

    電子發燒友網站提供《使用TPS25961獲得性能更高、空間更小、成本更低的保護功能.pdf》資料免費下載
    發表于 09-09 09:31 ?0次下載
    使用TPS25961獲得性能<b class='flag-5'>更高</b>、空間更小、成本<b class='flag-5'>更低</b>的保護功能

    有沒有參數和THS4521差不多,功耗更低的高速運放?

    有沒有參數和THS4521差不多,功耗更低的高速運放?
    發表于 09-06 06:07

    容性負載導致運算放大器不穩定的解決辦法

    1、運算放大器為什么振蕩:兩種常見原因的直觀分析 第一種情況與電容性負載有關(圖 a)。電阻器是運算放大器的開環輸出電阻。電容器當然是負載電容。有些是需要驅動的容性負載,而有些
    發表于 08-07 07:11

    cpu運算器和控制器的作用是什么

    CPU運算器和控制器是計算機的核心組成部分,它們共同完成計算機的各種運算和控制任務。下面我們將詳細介紹運算器和控制器的作用。 運算器的作用
    的頭像 發表于 06-30 11:15 ?2605次閱讀

    cpu控制器負責什么運算

    、設計和實現等方面的內容。 CPU控制器的功能 CPU控制器是計算機系統中最重要的組件之一。它的主要功能包括: 1.1 指令執行:CPU控制器負責執行程序中的指令。這些指令包括算術運算
    的頭像 發表于 06-30 11:14 ?1065次閱讀

    cpu控制器和運算器組成的部件有哪些

    CPU(中央處理器)是計算機的核心部件,負責執行程序指令和處理數據。CPU主要由控制器和運算器組成,這兩個部件共同完成計算機的運算任務。下面詳細介紹
    的頭像 發表于 06-30 11:01 ?2201次閱讀

    為什么雙液原電池比單液原電池效率更高

    雙液原電池相較于單液原電池具有更高效率,這主要是由于兩者在設計原理和工作機制上的不同。
    的頭像 發表于 04-26 17:05 ?2942次閱讀

    CPU、MPU、MCU、SOC的差異

    CPU(Central Processing Unit),是一臺計算機的運算核心和控制核心。CPU運算器、控制器和寄存器及實現它們之間聯系的數據、控制及狀態的總線構成。
    的頭像 發表于 04-22 15:05 ?1418次閱讀

    國產DSP,QX320F280049C,32位獨立雙核CPU主頻200MHz,P2P替代TMS320F280049C

    主頻200MHz 32位獨立雙核,全自研架構 flash 1MB,SRAM 1MB 單精度浮點運算FPU 三角函數運算TMU 3個12位ADC,采樣率3MSPS 24個增強型epwm 16個高分辨率HRPWM(150PS)
    發表于 04-01 16:26
    百家乐官网赌博论坛| 百家乐官网打水套利| 玩百家乐官网掉房| 注册百家乐送彩金| 大发888 迅雷下载| e世博百家乐官网技巧| 新濠百家乐官网娱乐城| 开百家乐骗人吗| tt娱乐城备用网| 棋牌百家乐官网赢钱经验技巧评测网| 太阳城百家乐筹码租| 大发888 casino exe| 帝王百家乐官网全讯网2| 百家乐作弊演示| 大发888我发财| 百家乐官网投注秘笈| 百家乐有多少网址| 大发888娱乐登录| 百家乐官网游戏机图片| 百家乐陷阱| 大富豪棋牌游戏中心| 百家乐官网娱乐网址| 盐城百家乐的玩法技巧和规则| 888真人娱乐城| 百家乐官网赌博筹| 百家乐怎样出千| 河东区| 百家乐的关键技巧| 真钱轮盘游戏| 多台百家乐官网的玩法技巧和规则 | 百家乐官网娱乐城博彩| 百家乐平台下载| 凤庆县| 真人百家乐怎么对冲| bet365网址yalanad| 百家乐官网园天将| 大发888娱乐场 zb8| 金城百家乐官网平台| 真人百家乐国际第一品牌| 百家乐官网可以算牌么| MG百家乐大转轮|