计算机组成原理:超标量,让CPU的吞吐率超过1
生活随笔
收集整理的這篇文章主要介紹了
计算机组成原理:超标量,让CPU的吞吐率超过1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題
一個公式:
程序的CPU執行時間=指令數?CPI?ClockCycleTime程序的CPU執行時間 = 指令數 * CPI * Clock Cycle Time程序的CPU執行時間=指令數?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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 千里达v1000时速_《美骑评测》第10
- 下一篇: 如何线上推广引流?百度知道实现精准引流