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