精简指令和复杂指令计算机,CPU精简指令集和复杂指令集的区别
經常看到計算機課程上介紹PowerPC是采用精簡指令集的CPU,酷睿CPU是復雜指令集。那么到底精簡指令集和復雜指令集有什么區別呢?
以下內容摘自百度百科:
在計算機指令系統的優化發展過程中,出現過兩個截然不同的優化方向:CISC技術和RISC技術。CISC是指復雜指令系統計算機(Complex Instruction Set Computer);RISC是指精減指令系統計算機(Reduced Instruction Set Computer)。這里的計算機指令系統指的是計算機的最低層的機器指令,也就是CPU能夠直接識別的指令。隨著計算機系統的復雜,要求計算機指令系統的構造能使計算機的整體性能更快更穩定。最初,人們采用的優化方法是通過設置一些功能復雜的指令,把一些原來由軟件實現的、常用的功能改用硬件的指令系統實現,以此來提高計算機的執行速度,這種計算機系統就被稱為復雜指令系統計算機,即Complex Instruction Set Computer,簡稱CISC。另一種優化方法是在20世紀80年代才發展起來的,其基本思想是盡量簡化計算機指令功能,只保留那些功能簡單、能在一個節拍內執行完成的指令,而把較復雜的功能用一段子程序來實現,這種計算機系統就被稱為精簡指令系統計算機.即Reduced Instruction Set Computer,簡稱RISC。RISC技術的精華就是通過簡化計算機指令功能,使指令的平均執行周期減少,從而提高計算機的工作主頻,同時大量使用通用寄存器來提高子程序執行的速度。
通過上述內容大家基本可以知道,復雜指令集就是將更多功能步驟集成在了CPU中。例如烹飪西紅柿雞蛋的步驟包括:購買西紅柿和雞蛋,清洗食材,打雞蛋,炒雞蛋,放西紅柿繼續炒,放糖,放鹽,炒熟之后盛盤上桌。這樣已連續的步驟被集成在CPU內部。外部程序需要烹飪西紅柿雞蛋的時候只需要向CPU下達指令說:“烹飪西紅柿雞蛋”就可以了。復雜指令集就是將瑣碎的步驟實現集成到了CPU內部,例如INTEL的SSE3等。
精簡指令集就是在CPU中只有容器,調料等基本指令。需要人們在軟件中寫上如何協調這些指令的步驟,例如你需要向CPU下達指令說:買西紅柿,清晰食材,打雞蛋,炒雞蛋,放西紅柿繼續炒,放糖,放鹽,炒熟之后盛盤上桌。
由此可見當兩個人比賽做飯的時候,復雜指令集的參賽者只需要不停的說“做飯做飯”就可以了。而精簡指令集的參賽者需要不停的重復做飯的整個過程和步驟。如果精簡指令集的參賽者嘴巴夠快才能趕上復雜指令集的參賽者,但是這個“嘴巴”其實取決于內存和CPU之間的帶寬是否足夠。當然精簡指令集也同樣存在優越性,復雜指令集要通過不斷增加指令的復雜程度和指令的數量來提高性能所以才會越做越大越做越耗電,而精簡指令集相比較無疑體積更小更加省電。
上面只是舉了一個較為偏激的例子而已,你可以認為是針對于嵌入式精簡指令集和普通酷睿(X86)架構的一個比較,這個是不對等和不公平的。IBM PowerPC可是堪比至強性能的呢,這是怎么回事呢?IBM在70年代末期提出復雜指令集存在很多缺點:1,隨著應用需求,復雜指令集不可能無止境的增加指令。2,實際程序運行過程中80%的指令,只占一個處理器指令系統的20%,被頻繁使用的指令只是一些取、存和加這些最簡單的指令。3,CPU廠商不同,復雜指令集也不同,程序的可移植性會非常差,即便可以運行效率也會相差較大(所以我常說服務器要用INTEL處理器,因為更多的程序以調用INTEL指令集為依據)。針對復雜指令集的弊端才提出了精簡指令集。
IBM PowerPC無疑擁有更強勁的處理性能與更大的內存帶寬,但是其精簡指令集的CPU決定了只能在某個特定應用領域才能完勝至強。因為PowerPC本身硬件設計和軟件設計更具備針對性。例如并發控制、數據存取。
總結:精簡指令集也好,復雜指令集也罷都是CPU運行功能和實現應用的方法而已。在特定領域和行業選擇不同指令集CPU才是王道。手機和火星登陸車里邊永遠無法放進去X86,個人家用電腦日趨強勁的多應用多功能化也永遠不要奢望使用IBM PowerPC。
有人說精簡指令集架構平臺下對于程序員的要求會更高呢?其實未必。在寫程序時精簡指令集和復雜指令集開發代碼上并沒有特別大的差異,真正轉換成特定CPU指令架構底層語言是依靠編譯器實現的。也就是你的代碼技能在精簡指令集用,也能在復雜指令集用,主要取決于你的編譯器編譯出的匯編語言適用于何種架構。
總結
以上是生活随笔為你收集整理的精简指令和复杂指令计算机,CPU精简指令集和复杂指令集的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 两个字的女生网名大全91个
- 下一篇: 好听的网游玩家名字,独特好听的网络游戏昵