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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

计算机组成原理:超标量,让CPU的吞吐率超过1

發布時間:2024/8/1 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机组成原理:超标量,让CPU的吞吐率超过1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題

一個公式:
程序的CPU執行時間=指令數?CPI?ClockCycleTime程序的CPU執行時間 = 指令數 * CPI * Clock Cycle TimeCPU=?CPI?ClockCycleTime

  • 這個公式里,有一個叫做CPI的指標,CPI的倒數,又叫作 IPC(Instruction Per Clock),也就是一個時鐘周期里面能夠執行的指令樹,代表了CPU的吞吐率。那么,在反復優化流水線架構的CPU里面,能夠達到多少呢?

  • 答案是:最佳情況下,IPC也只能到1。因為無論做了哪些流水線層面的優化,即使做到了指令執行層面的亂序執行,CPU仍然只能在一個時鐘周期里面,取一條指令。


但是,我們現在用的Intel CPU 或者 ARM 的 CPU,一般的 CPI 都能做到 2 以上,這是怎么做到的呢?

  • 指令的執行階段:亂序執行的時候,是由很多個功能單元(FU)并行(Parallel)進行的。
  • 取指令和指令譯碼也可以通過增加硬件的方式,同時并行執行:
    • 我們可以一次性從內存里面取出多條指令,然后分發給多個并行的指令譯碼器,進行譯碼,然后對應交給不同的功能單元去處理。

這樣,我們在一個時鐘周期里,能夠完成的指令就不只一條了。IPC 也就能做到大于 1 了


(從上圖可以看出,不同的功能單元的流水線長度是不一樣的。我們平時說的14級流水線,指的通常是進行整數計算指令的流水線長度。如果是浮點數運行,實際的流水線長度會更長一點)

這種 CPU 設計,我們叫作多發射(Mulitple Issue)和超標量(Superscalar)。

  • 多發射:在同一個時間,可能會同時把多條指令發送到不同的譯碼器或者后繼處理的流水線中去
  • 超標量:
    • 在超標量的CPU里面,有很多條并行的流水線,而不是只有一條流水線。
    • “超標量”這個詞是說,本來我們在一個時鐘周期里面,只能執行一個標量(Scalar)的運算。在多發射的情況下,我們就能夠超越這個限制,同時進行多次計算。

總結

  • 超標量可以讓CPU不僅在指令執行階段是并行的,在取指令和指令譯碼的時候,也是并行的。通過超標量技術,可以使得CPU的IPC超過1
  • 在 Intel 的 x86 的 CPU 里,從 Pentium 時代,第一次開始引入超標量技術,整個 CPU 的性能上了一個臺階。對應的技術,一直沿用到了現在。
  • 超標量技術和流水線技術一樣,依賴于在硬件層面,能夠檢測到對應的指令的先后依賴關系,解決“冒險”問題。所以,它也使得CPU 的電路變得更復雜了。

總結

以上是生活随笔為你收集整理的计算机组成原理:超标量,让CPU的吞吐率超过1的全部內容,希望文章能夠幫你解決所遇到的問題。

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