日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CPU指令执行及流水线(超标量、多发射、乱序执行)

發布時間:2024/8/1 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CPU指令执行及流水线(超标量、多发射、乱序执行) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用生活例子引入流水線邏輯:**

為什么要引入流水線(流水線誕生之前):

首先計算機是通過CPU執行指令來實現運行并計算的,計算機在設計之初,每條指令只能串行執行,意思就是等第一條指令執行完,第二條指令才能開始執行,這樣顯然效率太低。

流水線設計原理:

然而指令執行過程有很多階段,比如經典的五級流水線結構,把指令執行的階段分成五級,分別為取指、譯碼、執行、訪存、寫回,就像手機組裝生成線上的把組裝、檢測、包裝一樣,不同階段是不一樣的工人在干活,同樣五級流水線中的每一級用的也是不一樣的CPU部件。在手機組裝過程中,第一個人組裝完第一臺手機就把第一臺交給測試工人,組裝工人繼續組裝第二臺手機。測試工人也一樣測試完第一臺就交給下個包裝工人,自己繼續測試第二臺。所以有人想辦法借鑒組裝手機這種思想去構造流水線,第一條指令取指完,就把這條指令交給譯碼部件,自己繼續取指第二條,這樣的話從第5個時間段開始,每個部件都在自己忙活,不存在之前的串行問題,5個時間內,每個部件只上一個時間的班,其余時間都歇著。這就是流水線技術。

多發射:

但是隨著集成電路發展,很多人不滿足這樣的效率,萌生出一次我直接執行兩條毫無關系的指令。也就是一次發射兩條指令。多發射就是這個意思。顯然生活中肯定一心不能二用,但是現在可以增加部件,也就是組裝線上坐多個人也就是多條流水線,實現了多發射。

亂序執行:

由于在指令在一定邏輯上只能按照順序執行,比如疫情期間在家辦公,計劃的順序是起床、等快遞來送菜、做早飯、吃早飯、回復郵件、開始工作。但是快遞小哥遲遲不來,咱們是不是得一直等著他來送菜再進行下面的事情?顯然不會,你一定會把等菜、做飯、吃飯等一系列步驟放著,先去執行另一系列的步驟(發郵件、工作),因為這兩個系列的步驟是完全不相關的。放在CPU中的邏輯時,某條指令需要訪存,訪存的時候多級cache不命中、內存缺頁等原因導致訪存時間延長,這個時候是不是也像快遞小哥遲遲不來一樣,這個時候咱們就要先放棄這一系列的事情,先去執行后面的與之無關指令。等訪存結束再去回去執行之前被耽擱的指令,這就是亂序執行(因為指令的順序被打亂了)。這樣的代價在哪里?,為什么叫亂序執行,不叫亂序提交,那就是因為提交順序(最后結果)必須正確,比如一個寄存器按照原本的順序是 被改成3、3被訪問、被改成5、5被訪問,顯然前兩個跟后兩個沒有關系,如果出現了亂序執行,先執行了后兩個,那么寄存器最后結果就是3了,后續跟這個寄存器打交道的指令都會出錯(原本希望最后是5),所以提交順序一定要正確,所以設計了保留站和ROB(重排序緩沖),那就是標記指令本來的執行順序,在寫回(最后一級流水線)的時候、如果比自己標記好小的指令不提交,自己就在ROB中呆著等待原本在自己前面的指令提交。這樣就保證了既節省時間又能正確提交。

超標量:

上面是說的都是一個核同時只能執行一條指令,超標量就是一個核同時可以指令兩條指令。

總結

以上是生活随笔為你收集整理的CPU指令执行及流水线(超标量、多发射、乱序执行)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。