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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

指令级并行——超标量Superscalar与超长指令字VLIW架构

發布時間:2024/8/1 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 指令级并行——超标量Superscalar与超长指令字VLIW架构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文介紹并比較了CPU架構超標量superscalar和超長指令自VLIW(Very?long?instruction?word)。

亂序執行(In-order & out-of-order execution)

在各單元不按規定順序執行完指令后還必須由相應電路再將運算結果重新按原來程序指定的指令順序排列后才能返回程序。這種將各條指令不按順序拆散后執行的運行方式就叫亂序執行(也有叫錯序執行)技術。這樣將根據個電路單元的狀態和各指令能否提前執行的具體情況分析后,將能提前執行的指令立即發送給相應電路單元執行,在這期間不按規定順序執行指令,然后由重新排列單元將各執行單元結果按指令順序重新排列。采用亂序執行技術的目的是為了使CPU內部電路滿負荷運轉并相應提高了CPU的運行程序的速度。分枝技術:(branch)指令進行運算時需要等待結果,一般無條件分枝只需要按指令順序執行,而條件分枝必須根據處理后的結果,再決定是否按原先順序進行。

采用亂序執行技術的目的是為了使CPU內部電路滿負荷運轉并相應提高了CPU的運行程序的速度。

在按序執行中,一旦遇到指令依賴的情況,流水線就會停滯,如果采用亂序執行,就可以跳到下一個非依賴指令并發布它。這樣,執行單元就可以總是處于工作狀態,把時間浪費減到最少。亂序執行可以允許在發布指令3前發布指令4~8,而且這些指令的執行結果可以在指令3引出后立即引出(按序引出對X86 CPU來說是必需的),實際解碼率又會增加25%。不過PⅡ和K6從亂序執行中得到的好處有限,因為如果CPU遇到指令依賴情況,它必須找到更多的非依賴指令進行發布。WinChip的性能表現看到一個帶有大容量一級Cache的按序執行CPU能夠同亂序執行CPU競爭,在時鐘周期方面,Cache未命中的代價是非常高昂的。帶有大容量一級Cache的按序執行CPU性能,比只有較小容量Cache亂序執行CPU的性能要強。在Cortex A9中,ARM引入了高端處理器常用的亂序執行(Out-of-Order)和猜測執行(Speculative Execution)機制.

?

超長指令字(VLIW:Very?long?instruction?word)指的是一種被設計為可以利用指令級并行(ILP)優勢的CPU體系結構,。一個按照順序執行指令的非超標量處理器不能充分的利用處理器的資源,有可能導致低性能。

性能可以通過同時執行一系列指令中的不同子步驟來提高(這就是流水線),或者像超標量架構一樣,甚至完全的并行執行多個處理器指令。進一步的提高可以通過指令的執行順序與在程序代碼中出現的順序不同來提高,這就是亂序執行。

這3種技術都要付出代價:增加了硬件的復雜性。在并行執行任何操作之前,處理器必須確認這些指令間沒有相互依賴。例如第一個指令的結果作為第二個指令的輸入。很明顯,這樣的2條指令那個無法同時執行,并且第2條指令不能在先于第一條指令執行。亂序執行處理器增加了硬件資源用于調度指令和決定相互依賴。處理器包含多個功能單元,如不同的算術運算單元ALU,乘累加MAC單元、移位處理單元和浮點運算單元等。

另一方面,VLIW通過另外一種方法來實現并行。VLIW的并行指令執行是基于一個確定的調度。這個調度是程序在編譯的時候就已經確定好的。由于決定亂序執行的工作是由編譯器來完成的,處理器不再需要上面三種技術所需的調度硬件。結果VLIW處理器相比其他多數的超標量處理器提供了更加強大的處理能力但是更少的硬件復雜性(編譯器的復雜性提高了)。

正如一些其他比較新穎的架構,這種并行執行的概念只有當編譯器能生成有效的代碼的時候才變得有用。事實上,一些有著特殊目的的指令可以用來幫助一些復雜的操作,例如快速傅立葉變換或者在地貌計算中出現的計算。如果編譯器無法準確的找出相關的代碼并且生成可以利用CPU能力的目標代碼,這些特殊目的的指令將變得毫無用處。例如,程序員可能需要將他的算法用一種可以降低編譯器工作難度的方式進行描述。

?

超標量(superscalar)CPU架構是指在一顆處理器內核中實行了指令級并行的一類并行運算。這種技術能夠在相同的CPU主頻下實現更高的CPU吞吐率(throughput)。處理器的內核中一般有多個執行單元(或稱功能單元),如算術邏輯單元、位移單元、乘法器等等。未實現超標量體系結構時,CPU在每個時鐘周期僅執行單條指令,因此僅有一個執行單元在工作,其它執行單元空閑。超標量體系結構的CPU在一個時鐘周期可以同時分派(dispatching)多條指令在不同的執行單元中被執行,這就實現了指令級的并行。超標量體系結構可以視作MIMD(多指令多數據)。超標量體系結構的CPU一般也都實現了指令流水化。但是一般認為這二者是增強CPU性能的不同的技術。第一種采用了超標量技術的X86處理器是Pentium。

?

圖1超標量(superscalar)架構指令執行流水化

比較總結

超標量用硬件來決定哪些指令可以并行執行,而VLIW采用軟件來決定哪些指令并行,通過把指令調度的復雜度交給編譯器來降低硬件復雜度。

總結

以上是生活随笔為你收集整理的指令级并行——超标量Superscalar与超长指令字VLIW架构的全部內容,希望文章能夠幫你解決所遇到的問題。

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