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