一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CPU流水線優(yōu)缺點

嵌入式情報局 ? 來源:嵌入式情報局 ? 作者:嵌入式情報局 ? 2022-10-24 14:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

為什么有些CPU的主頻更低,但運算效率卻更高呢? 比如:51單片機30M主頻,STM32單片機20M主頻,執(zhí)行相同一段代碼可能主頻更低的STM32所花的時間更短。 這里就牽涉到CPU流水線的問題,本文圍繞CPU流水線描述相關(guān)內(nèi)容。

1、早期CPU流水線

1.流水線來源

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

1.沖壓:制作車身外殼和底盤等部件;

2.焊接:將沖壓成形后的各部件焊接成車身;

3.涂裝:將車身等主要部件清洗、化學(xué)處理、打磨、噴漆和烘干;

4.總裝:將各部件(包括發(fā)動機和向外采購的零部件)組裝成車;

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

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

2.CPU流水線

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

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

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

第三級為轉(zhuǎn)址階段,用來將內(nèi)存地址和偏移進(jìn)行轉(zhuǎn)換;

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

第五級為退出階段,運算的結(jié)果被寫回寄存器或者內(nèi)存。

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

2、CPU流水線技術(shù)

CPU流水線技術(shù)是一種將指令分解為多步,并讓不同指令的各步操作重疊,從而實現(xiàn)幾條指令并行處理,以加速程序運行過程的技術(shù)。 指令的每步有各自獨立的電路來處理,每完成一步,就進(jìn)到下一步,而前一步則處理后續(xù)指令。 采用流水線技術(shù)后,并沒有加速單條指令的執(zhí)行,每條指令的操作步驟一個也不能少,只是多條指令的不同操作步驟同時執(zhí)行,因而從總體上看加快了指令流速度,縮短了程序執(zhí)行時間。 流水線技術(shù)是通過增加計算機硬件來實現(xiàn)的。它要求各功能段能互相獨立地工作,這就要增加硬件,相應(yīng)地也加大了控制的復(fù)雜性。如果沒有互相獨立的操作部件,很可能會發(fā)生各種沖突。例如要能預(yù)取指令,就需增加指令的硬件電路,并把取來的指令存放到指令隊列緩沖器中,使微處理器能同時進(jìn)行取指令和分析、執(zhí)行指令的操作。 ---來自百度百科

3、流水線與代碼執(zhí)行效果

為什么說同主頻的51單片機相比STM32執(zhí)行效率低呢? 除了大家認(rèn)為的8位和32位寬度區(qū)別之外,還有一個就是51單片機不支持流水線(也可以理解為單流水線),而STM32支持流水線。 Cortex‐M3處理器使用一個 3 級流水線。流水線的 3 級分別是:取指、解碼和執(zhí)行, 如圖: cb8e5142-520d-11ed-a3b6-dac502259ad0.png ? 通過下面一張圖來對比單流水線和多級流水線,你就更能明白為什么51單片機執(zhí)行效率低了。 cba7f1ce-520d-11ed-a3b6-dac502259ad0.jpg

4、多級流水線優(yōu)缺點

并非在所有情況下流水線技術(shù)都起作用??赡苡幸恍┤秉c。如果一條指令流水線能夠在每一個時脈周期接納一條新的指令,被稱為完整流水線(fully pipelined)。因流水線中的指令需要延遲處理而要等待數(shù)個時脈周期,被稱為非完整流水線。 當(dāng)一名程序員(或者組合者/編譯者)編寫組合代碼(或者匯編碼)時,他們會假定每個指令是循序運行的。而這個假設(shè)會使流水線無效。當(dāng)此現(xiàn)象發(fā)生后程序會表現(xiàn)的不正常,而此現(xiàn)象就是危害。不過當(dāng)前有提供幾種技術(shù)來解決這些危害像是轉(zhuǎn)發(fā)與延遲等。 1.優(yōu)點

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

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

2.缺點

流水線處理器設(shè)計復(fù)雜度更高、生產(chǎn)成本更高;

流水線的處理器必須在數(shù)據(jù)路徑中添加額外觸發(fā)器。

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

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19896

    瀏覽量

    235313
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11080

    瀏覽量

    217131
  • 流水線
    +關(guān)注

    關(guān)注

    0

    文章

    124

    瀏覽量

    26633

原文標(biāo)題:為什么CPU流水線能提高代碼執(zhí)行效率?

文章出處:【微信號:嵌入式情報局,微信公眾號:嵌入式情報局】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    請教流水線型 AD 的優(yōu)缺點

     請教一下大家 流水線型 AD 的優(yōu)缺點,還有應(yīng)用范圍。小弟只用過SAR型的,在選型的時候看到了 流水線型的這種AD,不知道和SAR型的相比有什么特點,有什么不足。~先謝謝大家啦
    發(fā)表于 06-23 10:25

    FPGA中的流水線設(shè)計

    `流水線設(shè)計前言:本文從四部分對流水線設(shè)計進(jìn)行分析,具體如下:第一部分什么是流水線第二部分什么時候用流水線設(shè)計第三部分使用流水線
    發(fā)表于 10-26 14:38

    科普下CPU流水線的工作原理

    現(xiàn)在的CPU處理器一般都是超流水線工作,動不動就是10級以上流水線,超高主頻,這兩者之間有什么關(guān)系呢?今天就跟大家科普下CPU流水線的工作原
    發(fā)表于 12-15 06:17

    什么是流水線技術(shù)

    什么是流水線技術(shù) 流水線技術(shù)
    發(fā)表于 02-04 10:21 ?4096次閱讀

    CPU流水線的定義

    cpu流水線技術(shù)是一種將指令分解為多步,并讓不同指令的各步操作重疊,從而實現(xiàn)幾條指令并行處理,以加速程序運行過程的技術(shù)。
    發(fā)表于 12-14 15:29 ?4927次閱讀

    電鍍流水線的PLC控制

    電鍍流水線的PLC控制電鍍流水線的PLC控制電鍍流水線的PLC控制
    發(fā)表于 02-17 17:13 ?36次下載

    自制CPU(三)流水線

    經(jīng)過上兩篇文章的閱讀,大家應(yīng)該清楚自己的CPU大致是如何處理數(shù)據(jù)的,而又是如何執(zhí)行指令的。我們現(xiàn)在來在簡略的說一下流水線CPU的設(shè)計。(源碼在CSDN下載頁,請自?。?b class='flag-5'>流水線
    的頭像 發(fā)表于 07-16 09:20 ?6030次閱讀

    Verilog基本功之:流水線設(shè)計Pipeline Design

    第一部分什么是流水線 第二部分什么時候用流水線設(shè)計 第三部分使用流水線優(yōu)缺點 第四部分流水線加法器舉例 一. 什么是
    發(fā)表于 09-25 17:12 ?7368次閱讀

    FPGA之流水線練習(xí)5:設(shè)計思路

    流水線的工作方式就象工業(yè)生產(chǎn)上的裝配流水線。在CPU中由5—6個不同功能的電路單元組成一條指令處理流水線,然后將一條X86指令分成5—6步后再由這些電路單元分別執(zhí)行,這樣就能實現(xiàn)在一個
    的頭像 發(fā)表于 11-29 07:06 ?2893次閱讀

    各種流水線特點及常見流水線設(shè)計方式

    按照流水線的輸送方式大體可以分為:皮帶流水裝配線、板鏈線、倍速鏈、插件線、網(wǎng)帶線、懸掛線及滾筒流水線這七類流水線
    的頭像 發(fā)表于 07-05 11:12 ?8213次閱讀
    各種<b class='flag-5'>流水線</b>特點及常見<b class='flag-5'>流水線</b>設(shè)計方式

    如何選擇合適的LED生產(chǎn)流水線輸送方式

    LED生產(chǎn)流水線輸送形式分為平面直線傳輸流水線、各種角度平面轉(zhuǎn)彎傳輸流水線、斜面上傳流水線、斜面下傳流水線這四種輸送方式,企業(yè)也是可以根據(jù)L
    發(fā)表于 08-06 11:53 ?1194次閱讀

    嵌入式_流水線

    流水線一、定義流水線是指在程序執(zhí)行時多條指令重疊進(jìn)行操作的一種準(zhǔn)并行處理實現(xiàn)技術(shù)。各種部件同時處理是針對不同指令而言的,他們可同時為多條指令的不同部分進(jìn)行工作。? 把一個重復(fù)的過程分解為若干個子過程
    發(fā)表于 10-20 20:51 ?6次下載
    嵌入式_<b class='flag-5'>流水線</b>

    CPU流水線的問題

    1989 年推出的 i486 處理器引入了五級流水線。這時,在 CPU 中不再僅運行一條指令,每一級流水線在同一時刻都運行著不同的指令。這個設(shè)計使得 i486 比同頻率的 386 處理器性能提升了不止一倍。
    的頭像 發(fā)表于 09-22 10:04 ?2390次閱讀

    什么是流水線 Jenkins的流水線詳解

    jenkins 有 2 種流水線分為聲明式流水線與腳本化流水線,腳本化流水線是 jenkins 舊版本使用的流水線腳本,新版本 Jenkin
    發(fā)表于 05-17 16:57 ?1309次閱讀

    RISC-V五級流水線CPU設(shè)計

    本文實現(xiàn)的CPU是一個五級流水線的精簡版CPU(也叫PCPU,即pipeline),包括IF(取指令)、ID(解碼)、EX(執(zhí)行)、MEM(內(nèi)存操作)、WB(回寫)。
    的頭像 發(fā)表于 04-15 09:46 ?768次閱讀
    RISC-V五級<b class='flag-5'>流水線</b><b class='flag-5'>CPU</b>設(shè)計