x86架構(gòu)誕生
Intel 8086是一個(gè)由Intel于1978年所設(shè)計(jì)的16位微處理器芯片,是x86架構(gòu)的鼻祖。不久,Intel 8088就推出了,擁有一個(gè)外部的8位數(shù)據(jù)總線,允許便宜的芯片用途。
早在1981年,IBM公司推出了基于Intel 8088處理器的個(gè)人電腦(PC);和8086處理器相比,它是一臺(tái)低價(jià)格,低性能的處理器。盡管在當(dāng)時(shí)Motorola MC69000處理器的性能也相當(dāng)不錯(cuò),但是IBM這樣選擇的理由是因?yàn)?span style="color: rgb(170, 0, 255);">8088處理器已經(jīng)能夠?qū)Φ刂房偩€進(jìn)行“復(fù)用”,并且總線寬度達(dá)到8位,和以往相比,大大減少了整個(gè)系統(tǒng)的開(kāi)銷。由于當(dāng)時(shí)沒(méi)有芯片組這一概念,因此數(shù)據(jù)和指令的存儲(chǔ)和讀取都要依靠主板上的特殊門電路,這些部件也是8位的寬度。如果使用Mortola MC69000處理器的話,那么在相同功能的情況下,主板需要更多的此類部件,因此大大增加了主板的制造成本。盡管有人建議,Mortola MC69000有助于系統(tǒng)性能的提高,但是IBM固守“簡(jiǎn)單就是美”的原則,毅然選擇了8088處理器。
IBM的“生死抉擇”卻給軟件開(kāi)發(fā)者帶來(lái)災(zāi)難性的影響(當(dāng)時(shí)沒(méi)有充分意識(shí)到)。由于處理器采用了808X的架構(gòu),因此數(shù)據(jù)和代碼只能在64KB的范圍內(nèi)進(jìn)行訪問(wèn)。如果某一個(gè)程序需要使用超過(guò)64KB的內(nèi)存,那么程序不得不使用16位的段地址和16位的偏移地址組合,來(lái)達(dá)到20位的數(shù)據(jù)訪問(wèn)范圍。當(dāng)時(shí)的程序員就為16位到20位的地址轉(zhuǎn)化傷透了腦筋。在程序的編譯過(guò)程中,也引進(jìn)了相應(yīng)的內(nèi)存使用模式(小型,中型,大型,巨型)。系統(tǒng)集成的匯編語(yǔ)言在程序編寫時(shí),必須指明是近程調(diào)用(near call)還是遠(yuǎn)程調(diào)用(far call)。如果要把8088處理器的程序移植到如MC68000機(jī)時(shí),就必須把地址擴(kuò)展成32位,這個(gè)過(guò)程非常繁瑣。
盡管64KB的限制是IBM個(gè)人電腦的一個(gè)死穴,但是當(dāng)時(shí)IBM PC的市場(chǎng)銷售額非常不錯(cuò)。8088處理器和DOS操作系統(tǒng)能夠支持大部分的應(yīng)用軟件,因此IBM的個(gè)人電腦推出不久就受到各界的好評(píng);而對(duì)于64KB的限制,人們似乎沒(méi)有太多的關(guān)注。隨著PC的成功推出,IBM著手于X86系統(tǒng)架構(gòu)標(biāo)準(zhǔn)的制定,并且希望成為全球最大的電腦制造商。Intel和Microsft都參與了此標(biāo)準(zhǔn)的定制,并且攜手進(jìn)行個(gè)人電腦的開(kāi)發(fā)。
第一個(gè)x86架構(gòu)的“嬰兒”便是于1985年推出的32位的80386處理器(386處理器)。當(dāng)時(shí),大部分的操作系統(tǒng)(或者準(zhǔn)操作系統(tǒng))還是16位模式,因此程序員也必須進(jìn)行地址的轉(zhuǎn)化,這個(gè)令人厭煩的轉(zhuǎn)化工作直到Microsoft公司發(fā)布了第一款32位的操作系統(tǒng)Windows 95時(shí),才得以解決。Windows 95是第一款使用32位地址的操作系統(tǒng),它能夠?qū)?2位空間的數(shù)據(jù)進(jìn)行讀寫操作,并且80386處理器的內(nèi)部有7個(gè)通用寄存器(GPRS)。
從19世紀(jì)80年代開(kāi)始,X86架構(gòu)快速的發(fā)展著。同時(shí),RISC(精簡(jiǎn)指令集)架構(gòu)也受到人們的關(guān)注,并且有不少成功的產(chǎn)品,如SPARC ,PA-RISC,MIPS等。從價(jià)格上而言,X86架構(gòu)的PC機(jī)最便宜;而那些基于RISC處理器的大型機(jī)價(jià)格昂貴。但是在架構(gòu)上,PC機(jī)和大型機(jī)有非常多的相同點(diǎn),它們都有著良好的軟件支持,并且集成匯編語(yǔ)言。
它們之間第二個(gè)相似點(diǎn)就是PC和大型機(jī)的檔次通常用以整體的性價(jià)比來(lái)決定,而不是只決定于CPU的處理能力??煽啃裕捎眯?,和功能性是用于衡量機(jī)器性能的主要標(biāo)準(zhǔn)。PC機(jī)和大型機(jī)的定位也相當(dāng)?shù)拿鞔_,在1980年,一臺(tái)PC機(jī)的價(jià)格只要幾百美元,而大型機(jī)的架構(gòu)至少要上千美元;在功能上,PC機(jī)定位于整數(shù)的運(yùn)算,而大型機(jī)卻是以浮點(diǎn)數(shù)的運(yùn)算來(lái)衡量性能的高低。
盡管PC機(jī)和RISC大型機(jī)在價(jià)格和功能上定位不同,但是在1990年初,Sun Microsystems公司推出了桌面的微型RISC系統(tǒng)“MicroSPARC”。為了能夠穩(wěn)固自身的地位,針對(duì)Sun公司這個(gè)行為,Intel公司不久后就推出了性能和MicroSPARC相當(dāng)?shù)腜entium Pro處理器,Pentium Pro處理器是X86架構(gòu)發(fā)展過(guò)程中的一個(gè)里程碑。
Pentium Pro 處理器首先在x86體系中引入了“微指令”的概念,即一條指令能夠完成原先幾條指令的操作。在256KB二級(jí)緩存的協(xié)助下,微指令使得系統(tǒng)的整體性能有了突破性的飛躍。當(dāng)時(shí)由0.35微米制成技術(shù)制造的Pentium Pro處理器可以和原先任何一款RISC處理器叫板。在當(dāng)時(shí),Pentium Pro的驚人性能在PC的制造界產(chǎn)生了巨大的影響,那些原先RISC的支持者不得不重新審視起x86架構(gòu)來(lái)。盡管x86架構(gòu)存在GPRS數(shù)量過(guò)少,串行的通訊指令過(guò)于復(fù)雜,內(nèi)存操作不便等缺點(diǎn),但是RISC的開(kāi)發(fā)者們不得不承認(rèn),當(dāng)時(shí)的RISC架構(gòu)達(dá)不到Pentium Pro的性能。
揭開(kāi)X86的真像
隨著經(jīng)濟(jì)的不斷發(fā)展,x86處理器的應(yīng)用范圍越來(lái)越廣,但是人們似乎漸漸忘卻x86架構(gòu)的不足。在x86架構(gòu)的發(fā)展過(guò)程中,它微處理器(MPU)或多或少的占據(jù)著領(lǐng)先的地位。為了保持領(lǐng)先,個(gè)人電腦的發(fā)展似乎脫離了IBM原先“簡(jiǎn)單就是美”的初衷。CPU的制成技術(shù)快速的發(fā)展著,集成的晶體管數(shù)量也基本按照莫爾定律增加。當(dāng)CPU集成的晶體管數(shù)量超過(guò)1百萬(wàn)后,“制成工藝”和“晶體管集成度”成為衡量系統(tǒng)性能的另一個(gè)標(biāo)準(zhǔn)。
同時(shí),基于RISC處理器的大型機(jī)也不懈的發(fā)展著,盡管在制成技術(shù)上不及X86架構(gòu),但是它的整數(shù)和浮點(diǎn)數(shù)性能要高于X86架構(gòu)。以下是1993年至今,x86性能和RISC的比值。
圖 x86/RISC 性能比 vs制成工藝
上圖分為兩個(gè)部分,上半部分是x86/RISC的性能比??梢钥闯?,在整體上,RISC的性能要高于x86(x86/RISC<1),但是它們之間的差距正在逐漸減少。其中Pentium Pro ,P4/1.5 ,P4/3.06這幾款CPU的性能已經(jīng)超過(guò)了同期RISC處理器的性能。圖的下半部分是x86和RISC制成工藝的對(duì)比。
Pentium Pro推出時(shí),x86架構(gòu)系統(tǒng)和RISC處理器系統(tǒng)的分工就相當(dāng)?shù)拿鞔_。
RISC系統(tǒng)針對(duì)高端的服務(wù)器市場(chǎng),CPU和所有的部件都必須確保系統(tǒng)的“穩(wěn)定性”,即使降低10%的性能也要盡可能的提高系統(tǒng)的穩(wěn)定性。因此RISC 處理器必須經(jīng)過(guò)詳細(xì),嚴(yán)謹(jǐn)?shù)脑O(shè)計(jì),并且需要通過(guò)一系列嚴(yán)格的測(cè)試。因此大型機(jī)的CPU非常昂貴,每一代的CPU一般只推出2~3種不同頻率的產(chǎn)品,因?yàn)槠髽I(yè)不可能在系統(tǒng)升級(jí)上不斷的投入昂貴的費(fèi)用。
相比之下x86架構(gòu)系統(tǒng)主要針對(duì)個(gè)人用戶和小型的商用系統(tǒng)。和RISC相比,x86的價(jià)格要低1~2個(gè)數(shù)量級(jí),它主要是確保系統(tǒng)的性能,或者盡可能的提高系統(tǒng)的性價(jià)比。因此針對(duì)同一代的CPU,它會(huì)推出7~8種不同頻率的產(chǎn)品。例如Intel Northwood Pentium 4的整個(gè)推出的過(guò)程中,一共發(fā)布了7種不同頻率的產(chǎn)品。
圖 產(chǎn)品推出力度對(duì)比
上圖清楚的表明,在同一代產(chǎn)品中,RISC系統(tǒng)一般只會(huì)推出2-3種產(chǎn)品,而X86架構(gòu)會(huì)有7-8種的產(chǎn)品。因此后者的粒度要比前者細(xì)的多。這也說(shuō)明RISC系統(tǒng)的CPU一旦設(shè)計(jì)定型,就會(huì)進(jìn)行制造和測(cè)試,在產(chǎn)品最后發(fā)布之前,盡可能的改正設(shè)計(jì)中的錯(cuò)誤,因?yàn)镽ISC昂貴的價(jià)格決定一旦CPU的設(shè)計(jì)存在問(wèn)題,那么這就是一款失敗的產(chǎn)品,在市場(chǎng)上就不會(huì)有立足之地。而x86的CPU價(jià)格較低,因此它不斷推出的產(chǎn)品能夠彌補(bǔ)以往設(shè)計(jì)中的不足,不同產(chǎn)品在于占領(lǐng)不同的市場(chǎng)。
X86=永恒?
隨著X86架構(gòu)的不斷成熟,人們逐步開(kāi)始認(rèn)識(shí)到其本身的限制和不足(例如32位的X86架構(gòu)的尋址空間只有4GB),但是巨大的商業(yè)利益和強(qiáng)勁的軟硬件的支持,使得x86的架構(gòu)難以動(dòng)搖。盡管在x86的發(fā)展歷程中,也有不少的體系設(shè)計(jì)用于代替x86架構(gòu),但是它們都因?yàn)榈貌坏綇V泛的支持,最終以失敗告終。其中,影響較大的是以下3次“x86革命”。
第一次革命:MIPS/ACE 聯(lián)盟
1991年4月,Compaq, Microsoft, DEC, MIPS和一些小型的計(jì)算機(jī)公司成立了高級(jí)計(jì)算環(huán)境(ACE)小組,他們的目的在于使用基于RISC處理器的MIPS架構(gòu)來(lái)取來(lái)現(xiàn)有的x86/IBM個(gè)人電腦。 但是由于MPU上市日期的延遲,ACE小組的內(nèi)部競(jìng)爭(zhēng),以及利益分成的問(wèn)題,使得ACE小組的發(fā)展舉步為艱,最后以失敗而告終。
第二次革命:Apple/IBM/Motorola (AIM) 聯(lián)盟
同樣在1994年4月底,Apple Computer, IBM 和 Motorola組成了AIM聯(lián)盟,目的在于把RISC處理器用于個(gè)人電腦系統(tǒng)。Motorola 和IBM聯(lián)手對(duì)POWER架構(gòu)進(jìn)行重新設(shè)計(jì),用于取代原先Macintosh系統(tǒng)中逐漸衰落的680X0 CISC處理器。POWER架構(gòu)給Mac系統(tǒng)帶來(lái)了巨大的成功,它的性能要比原先的Mac大大提高。但是x86架構(gòu)的發(fā)展始終要快于PowerPC ,而且PowerPC沒(méi)有任何的性價(jià)比優(yōu)勢(shì),因此不多久,Mac機(jī)就在x86架構(gòu)面前敗下陣來(lái)。在Intel和Microsoft巨大的壓力下,1994年8.3%的市場(chǎng)占有率也緊縮到目前的3%。
第三次革命:DEC/Samsung
1996年年底, DEC的芯片制造部門(原先的Digital Semiconductor公司)發(fā)布布了21164PC。它是原先高性能處理器21164A(EV56)的PC版,因此價(jià)格較低,并且使用了微軟的Windows NT操作系統(tǒng)。由于缺少相應(yīng)的軟件支持,DEC開(kāi)發(fā)了FX!32模擬器,它能夠把原先X86的軟件無(wú)縫的應(yīng)用到21164PC平臺(tái)。盡管CPU的價(jià)格低廉,但是支持21164PC的主板卻非常昂貴。而且在當(dāng)時(shí),人們對(duì)NT操作系統(tǒng)并沒(méi)有表現(xiàn)出多大的興趣,因此21164PC慢慢的在X86架構(gòu)發(fā)展中退出了歷史舞臺(tái)。
上述例子中的MPU制造商失敗的主要原因就是跟不上Intel CPU的發(fā)展速度。Intel不斷進(jìn)行著新型的CPU設(shè)計(jì),并且以價(jià)格來(lái)爭(zhēng)取市場(chǎng);上述的三種新型CPU架構(gòu)都是被Intel強(qiáng)大的馬力所拖垮。其中,MIPS/ACE 聯(lián)盟主要是資金的問(wèn)題,而AIM聯(lián)盟的失敗歸咎于CPU的設(shè)計(jì)跟不上Intel的發(fā)展速度。
Intel的自我革命
目前的事實(shí)告訴我們,當(dāng)今幾乎不可能有其他的MPU制造商使用其他的系統(tǒng)結(jié)構(gòu),來(lái)挑戰(zhàn)Intel 現(xiàn)下兼容的X86平臺(tái);其他的芯片制造商也沒(méi)有雄厚的資金和實(shí)力來(lái)和Intel公司進(jìn)行抗衡。人們考慮:是否Intel公司自己會(huì)提出一種全新的架構(gòu);或者Intel是否會(huì)脫離IBM的x86標(biāo)準(zhǔn)來(lái)發(fā)展自身的Wintel體系架構(gòu)(Wintel:Windows操作系統(tǒng)和Intel處理器)。近幾年,Intel致力研究的Itanium(安騰)處理器(IPF Itanium Processor Family)似乎有取代x86的趨勢(shì)。Intel也宣布,Itanium會(huì)首先使用在服務(wù)器上,然后過(guò)渡到PC平臺(tái),最終在移動(dòng)平臺(tái)上實(shí)現(xiàn)。
安騰處理器是構(gòu)建在IA-64(Intel Architecture 64) Itanium是英特爾最初的基于64-位體系的微處理器。Intel 的IPF主要針對(duì)RISC處理器原先占有的中高端服務(wù)器市場(chǎng)。Intel推出64位的處理器只是一個(gè)時(shí)間的問(wèn)題,可能在目前而言,還為時(shí)過(guò)早;但是Intel的競(jìng)爭(zhēng)對(duì)手AMD公司已經(jīng)在今年推出了x86架構(gòu)的擴(kuò)展―――64的處理器和系統(tǒng)平臺(tái)。AMD 64位的架構(gòu)并不是全新的架構(gòu),而是對(duì)原先32位的x86架構(gòu)進(jìn)行擴(kuò)展,突破了4GB尋址空間的限制;但是64位的計(jì)算環(huán)境卻在業(yè)界產(chǎn)生了巨大的影響,它成為Intel IPF技術(shù)的挑戰(zhàn)者。姑且不論AMD 64位架構(gòu)推出時(shí)機(jī)是否合適,但是業(yè)界普遍認(rèn)為64位的架構(gòu)會(huì)在5年內(nèi)成為主流的桌面PC架構(gòu),同時(shí)AMD的這一舉措也加快了IPF處理器的推出。
IPF技術(shù)是由Intel和惠普聯(lián)合研制,取得了一定的成績(jī)。但是目前的IPF處理器核心尺寸,電源功耗都決定了其不能使用在桌面系統(tǒng)上。IPF采用0.18微米的制成工藝,和Alpha EV(397mm2,125W),POWER4(415 mm2,115W)相比,Itanium 2處理器的尺寸為421 mm2,電源功耗高達(dá)130W。
在隨后的,代號(hào)為Madison/Deerfield的Intanium 2處理器中,Intel使用了0.13微米的制成工藝。1.3GHz的Itanium 2處理器的最大發(fā)熱量和2.66GHz Northwood Pentium 4相當(dāng)。和2.66GHz Pentium 4相比,1.3GHz Itanium2的整數(shù)運(yùn)算性能有了10%的提高,浮點(diǎn)數(shù)性能有了50%的提高。在高級(jí)的優(yōu)化技術(shù)下,IPF的性能要比原先同等頻率的處理器高出整整一倍,而且隨著IPF技術(shù)的成熟,這種差距會(huì)愈加擴(kuò)大。
盡管在硬件的技術(shù)上,AMD和Intel都已經(jīng)相當(dāng)成熟;但是AMD 64位的系統(tǒng)和Intel的IPF都不得不面臨一個(gè)相同的問(wèn)題:缺少軟件的支持。目前支持AMD 64位系統(tǒng)和IPF技術(shù)的只有Window最新的操作系統(tǒng)。AMD公司和Intel公司對(duì)于64位架構(gòu)的研發(fā)上都或多或少面臨“雞生蛋,還是蛋生雞”的尷尬局面。64位的架構(gòu)必須有軟件的支持才能發(fā)揮應(yīng)有的功效,同樣軟件只有憑借64位的架構(gòu)才能進(jìn)行開(kāi)發(fā)。業(yè)界人員保守的估計(jì),64位的軟件至少要3-5年才能普及起來(lái)。
對(duì)于IPF處理器而言,它和原先x86架構(gòu)下的處理器有什么本質(zhì)的不同呢?如果不考慮AMD的64位擴(kuò)展x86架構(gòu),在相同的電源功耗,相同的費(fèi)用,相同的制成工藝下,IPF處理器在整數(shù)運(yùn)算上的性能會(huì)高出20%-30%,浮點(diǎn)數(shù)和DSP的運(yùn)算性能會(huì)有50%的提高。
結(jié)論:革命尚未成功,同志仍需努力
“說(shuō)要比做的容易。”隨著IPF技術(shù)的成熟,32位x86架構(gòu)缺陷的不斷出現(xiàn),IPF取代x86架構(gòu)勢(shì)在必行。但是一旦真正的進(jìn)行“改革”。IPF(或者其他架構(gòu))必定會(huì)受到來(lái)自各方面的壓力和阻礙。樂(lè)觀的估計(jì),IPF取代x86成為主流的架構(gòu)至少要在2005年以后。如果考慮到來(lái)自AMD 64位的x86的架構(gòu)阻撓,那么整個(gè)改革的之間會(huì)更長(zhǎng),甚至有失敗的可能。
我們深知,每一項(xiàng)新技術(shù)的應(yīng)用,都會(huì)伴隨著出生時(shí)的陣痛;但是對(duì)于未來(lái)卻是一片光明。Intel的IPF如此,AMD的64位架構(gòu)也是如此。在PC發(fā)展歷程中,正是這些一次又一次的陣痛,不斷推動(dòng)著整個(gè)IT界發(fā)展,使IT界保持旺盛的發(fā)展力。也許這些陣痛可能會(huì)帶來(lái)難產(chǎn),使得嬰兒死于襁褓之中;但是每一次成功的誕生,都會(huì)給IT界帶來(lái)一個(gè)全新的世界。不管X86架構(gòu)未來(lái)如何,我們都期待著會(huì)有一個(gè)嶄新的明天。
CPU體系結(jié)構(gòu)CISC與RISC之爭(zhēng)
(轉(zhuǎn)自pcpro.com.cn)
在PC發(fā)展之初,除了成熟的CISC指令架構(gòu)外,IBM沒(méi)有更好的選擇,原因很簡(jiǎn)單,更先進(jìn)的RISC架構(gòu)在1975年才出現(xiàn),且只針對(duì)超級(jí)計(jì)算機(jī)領(lǐng)域,當(dāng)時(shí)沒(méi)有人意識(shí)到PC會(huì)有如此之大的發(fā)展,只是將它作為計(jì)算產(chǎn)品的一種補(bǔ)充而已。為圖省事,IBM干脆就選擇了Intel作為微處理器芯片的合作伙伴,而Intel所創(chuàng)立的X86指令系統(tǒng)便屬于CISC架構(gòu)。
我們有必要對(duì)指令架構(gòu)、CISC、RISC之類的概念作明晰的解釋。眾所周知,微處理器的基本邏輯是運(yùn)行指令的電路,計(jì)算機(jī)的任何一個(gè)程序都是由或多或少的基本指令組成,而指令本身又是由若干個(gè)微操作構(gòu)成,例如對(duì)兩個(gè)二進(jìn)制數(shù)進(jìn)行加減運(yùn)算,或者將結(jié)果送進(jìn)寄存器中等等。了解匯編語(yǔ)言或機(jī)器語(yǔ)言的讀者對(duì)此應(yīng)該比較清楚。這些基本指令被稱為微處理器的微代碼(Microcode),指令數(shù)量越多、完成微操作所需的邏輯電路就越多,芯片的結(jié)構(gòu)就越復(fù)雜。每個(gè)處理器開(kāi)發(fā)商都可以自己定義出一套指令系統(tǒng),但如果指令系統(tǒng)不相同,構(gòu)成軟件的指令也不相同,這樣就無(wú)法實(shí)現(xiàn)軟件兼容。在專用計(jì)算機(jī)時(shí)代,這種情況十分普遍,各個(gè)計(jì)算機(jī)廠商都獨(dú)立發(fā)展指令系統(tǒng)、微處理器、計(jì)算整機(jī)和軟件,不同廠商的軟硬件產(chǎn)品無(wú)法兼容使用,其原因就在于微處理器的指令系統(tǒng)采用不同的定義。然而,盡管當(dāng)時(shí)指令系統(tǒng)種類甚多,它們卻都?xì)w屬于CISC架構(gòu)—CISC的英文全稱是Complex Instruction Set Computer,意為“復(fù)雜指令系統(tǒng)計(jì)算機(jī)”。它的特點(diǎn)是指令數(shù)量龐大臃腫,每個(gè)指令不管執(zhí)行頻度高低都處于同一個(gè)優(yōu)先級(jí),程序員的編程工作相對(duì)容易。但它的致命弊端是執(zhí)行效率低下,處理器的晶體管被大量低效的指令所占據(jù),資源利用率頗為低下。當(dāng)IBM成功發(fā)展出RISC系統(tǒng)之后,CISC迅速被超級(jí)計(jì)算機(jī)所拋棄。但機(jī)緣巧合,它卻在PC上獲得新生,為了保持軟件兼容,PC必須一直延續(xù)X86架構(gòu)無(wú)法脫離(IBM將標(biāo)準(zhǔn)制定權(quán)讓給Intel,最終葬送了自己在PC領(lǐng)域的前途)。后來(lái)加入微處理器戰(zhàn)團(tuán)的Cyrix、Rise、AMD、IDT等廠商無(wú)一不是如此,PC朝著X86道路漸行漸遠(yuǎn),從8位、16 位、32位一直擴(kuò)展到現(xiàn)在的64位,雖然它依然有旺盛的生命力,但背后的一系列缺陷也逐漸顯現(xiàn):芯片設(shè)計(jì)臃腫不堪,能源利用率低下,性能與晶體管規(guī)模相當(dāng)?shù)腞ISC產(chǎn)品根本不在一個(gè)水平線上。
圖1依據(jù)80/20法則劃分的“冷代碼”與“熱代碼”概念——前者占據(jù)X86指令總量的80%,后者只占據(jù)20%。與之相應(yīng),冷代碼執(zhí)行單元占據(jù)絕大多數(shù)硬件資源,而高度活躍的熱代碼執(zhí)行單元所占據(jù)的硬件資源反而要少得多。PARROT優(yōu)化之后,熱代碼執(zhí)行單元被大大加強(qiáng),冷代碼單元?jiǎng)t被相應(yīng)縮減,在晶體管規(guī)模不變的前提下實(shí)現(xiàn)性能的跨越式提升。
相比之下,RISC(全稱Reduced Instruction Set Computer,精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī))則是一套優(yōu)化過(guò)的指令架構(gòu),它是根據(jù)著名的80/20法則所訂立。早在上個(gè)世紀(jì)60年代,計(jì)算機(jī)科學(xué)家們發(fā)現(xiàn),計(jì)算機(jī)中80%的任務(wù)只是動(dòng)用了大約20%的指令,而剩下20%的任務(wù)才有機(jī)會(huì)使用到其他80%的指令。如果對(duì)指令系統(tǒng)作相應(yīng)的優(yōu)化,就可以從根本上快速提高處理器的執(zhí)行效率。IBM公司在1975年成功開(kāi)發(fā)出第一款RISC處理器,從此RISC架構(gòu)開(kāi)始走進(jìn)超級(jí)計(jì)算機(jī)中。由于指令高度簡(jiǎn)約,RISC處理器的晶體管規(guī)模普遍都很小而性能強(qiáng)大,深受超級(jí)計(jì)算機(jī)廠商所青睞。很快,許多廠商都拿出自己的RISC指令系統(tǒng),除了IBM的Power和PowerPC 外,還有DEC的Alpha、SUN的SPARC、HP的PA-RISC、MIPS技術(shù)公司的MIPS、ARM公司的ARM等等。它的應(yīng)用范圍也遠(yuǎn)比 X86來(lái)得廣泛,大到各種超級(jí)計(jì)算機(jī)、工作站、高階服務(wù)器,小到各類嵌入式設(shè)備、家用游戲機(jī)、消費(fèi)電子產(chǎn)品、工業(yè)控制計(jì)算機(jī),都可以看到RISC的身影。只不過(guò)這些領(lǐng)域同普通消費(fèi)者較為脫離,故而少為人知。
無(wú)論在執(zhí)行效率、芯片功耗還是制造成本上,選擇RISC都比沿用X86更加英明。我們不妨作一番實(shí)際的比較:目前Intel公司最快的處理器是 Prescott核心的Pentium 4 XE系列,它的晶體管總數(shù)在1億7800萬(wàn)個(gè)以上,最高功耗達(dá)到130W,但它的運(yùn)算能力不超過(guò)20GigaFlops(FLoating point Operations per Second,每秒浮點(diǎn)運(yùn)算)。而目前最快的RISC處理器是IBM推出的Cell,它的晶體管總數(shù)為2.34億個(gè),在采用90納米工藝制造時(shí)芯片面積為221平方毫米,但它的運(yùn)算力高達(dá)2560GigaFlops,整整是Pentium 4 XE的128倍。Intel將在年中推出雙核心的Smithfield,性能最多能有80%的提升,而芯片規(guī)模將達(dá)到與Cell相同的水平。由此可見(jiàn),二者完全不是一個(gè)層面上的對(duì)手,X86指令系統(tǒng)的低效性在這里一覽無(wú)遺。與此對(duì)應(yīng),RISC產(chǎn)品在成本上優(yōu)勢(shì)明顯—半導(dǎo)體芯片的制造成本同芯片面積三次方成正比。在工藝相同的情況下,芯片面積大小取決于所集成的晶體管規(guī)模。RISC處理器核心精簡(jiǎn)、效率更高,只要很少的晶體管就能達(dá)到與X86產(chǎn)品媲美的效能,制造成本可大大低于現(xiàn)有的X86處理器。而小晶體管規(guī)模亦有助于保持較低的能耗值,RISC處理器在這方面表現(xiàn)相當(dāng)杰出,現(xiàn)在的嵌入式設(shè)備幾乎都采用 RISC產(chǎn)品,原因就在于這類產(chǎn)品的功耗值超低。
過(guò)去,PC鐘情于X86的原因在于軟件兼容,尤其是微軟只為X86 PC開(kāi)發(fā)Windows系統(tǒng),這也被認(rèn)為是PC采用RISC架構(gòu)的最大障礙。這個(gè)障礙最終也將被解除,Linux操作系統(tǒng)逐漸發(fā)展成熟,Mac OS X的綜合水準(zhǔn)更遠(yuǎn)在Windows之上,辦公、圖形、網(wǎng)絡(luò)、多媒體相關(guān)的各類跨平臺(tái)應(yīng)用軟件極大豐富。如果你是一個(gè)游戲玩家,RISC平臺(tái)一定會(huì)令你大呼過(guò)癮,于2005-2006年發(fā)布的索尼PS3、任天堂Revolution和微軟XBOX等新一代游戲機(jī)產(chǎn)品將全面轉(zhuǎn)入RISC體系(有趣的是,三種游戲機(jī)都采用IBM所設(shè)計(jì)的處理器,指令系統(tǒng)相同),短時(shí)間內(nèi)許多品質(zhì)一流的配套游戲軟件將會(huì)大量涌現(xiàn)。只要指令系統(tǒng)相同,這些游戲完全可以實(shí)現(xiàn)平滑移植。
單從技術(shù)角度考慮,以RISC取代X86作為PC的主力架構(gòu)的確是非常英明的選擇,更高的效率、更快的速度、更低的成本以及同樣豐富的軟件支持, RISC PC將展現(xiàn)出勃勃生機(jī)。然而,這一切似乎不容易實(shí)現(xiàn),無(wú)論Intel、AMD還是微軟,它們的輝煌成就都構(gòu)建在X86的基礎(chǔ)之上,轉(zhuǎn)向RISC對(duì)它們來(lái)說(shuō)無(wú)異于釜底抽薪。目前執(zhí)著發(fā)展RISC PC的只有蘋果公司,它們的全系列PC都基于IBM的PowerPC指令架構(gòu)。不幸的是,盡管蘋果公司大名鼎鼎,但它對(duì)整個(gè)市場(chǎng)的影響力極其有限,PC轉(zhuǎn)向RISC最大的障礙不在于技術(shù)或兼容性,而是缺乏一個(gè)實(shí)質(zhì)性的領(lǐng)導(dǎo)者,但有跡象表明,藍(lán)色巨人(IBM)對(duì)此有著強(qiáng)烈的意愿,RISC能否把握住PC的下一個(gè)三十年盡皆取決于它。
即便不采用RISC架構(gòu),我們?nèi)匀豢梢?strong>借助它的思想對(duì)X86處理器進(jìn)行結(jié)構(gòu)性改良。事實(shí)上,X86處理器一直都從RISC產(chǎn)品中獲取靈感,包括EV6總線、整合內(nèi)存控制器、超線程技術(shù)、雙核心等等新技術(shù)新概念都是首先在RISC產(chǎn)品中得到成功應(yīng)用,之后才被Intel/AMD引入到X86處理器當(dāng)中。實(shí)踐證明,這種做法往往對(duì)X86處理器的性能提升有著決定性的影響,而從RISC汲取營(yíng)養(yǎng)也就成為X86業(yè)界的習(xí)慣做法。
不過(guò),上述這些技術(shù)改良都只停留在應(yīng)用層面,指令體系的根本差異成為X86與RISC之間的壁壘,若能借助RISC理念對(duì)X86處理器進(jìn)行結(jié)構(gòu)性改良,也許可獲取更大的效益。Intel在IDF技術(shù)峰會(huì)上提出的“PARROT”概念便充分體現(xiàn)了這種思想。PARROT的全稱是“Power AwaReness thRough selective dynamically Optimized Traces”,從其名稱不難得知,PARROT是一項(xiàng)借助“動(dòng)態(tài)優(yōu)化執(zhí)行路徑”來(lái)提高處理器執(zhí)行效率的技術(shù)。它的理論基礎(chǔ)也是著名的80/20法則,但與RISC不同,X86處理器無(wú)法從指令系統(tǒng)層面上實(shí)現(xiàn)這一點(diǎn)。,Intel另辟蹊徑,提出了一個(gè)全新的發(fā)展思路,將20%的常用指令定義為“熱代碼(Hot Code)”,剩余的80%指令使用頻率沒(méi)那么高,被定義為“冷代碼(Cold Code)”。對(duì)應(yīng)的CPU也在邏輯上被劃分為兩個(gè)部分:一是熱核(Hot Spot),只針對(duì)調(diào)用到熱代碼的程序;另一部分則是冷核(Cold Spot),負(fù)責(zé)執(zhí)行20%的次常用任務(wù)。由于熱核部分要執(zhí)行80%的任務(wù),設(shè)計(jì)者便可以將它設(shè)計(jì)得較為強(qiáng)大,占據(jù)更多的晶體管資源。而冷核部分任務(wù)相對(duì)簡(jiǎn)單,沒(méi)有必要在它身上花費(fèi)同樣的功夫。理論上說(shuō),設(shè)計(jì)者可以將80%的晶體管資源用在熱核上面,使之高效率執(zhí)行任務(wù),剩余的20%晶體管資源則用于僅完成20%任務(wù)的冷核。相比之下,現(xiàn)在的X86處理器完全沒(méi)經(jīng)過(guò)結(jié)構(gòu)優(yōu)化,所有指令地位對(duì)等,80%的次常用指令占據(jù)了大量的晶體管資源,又沒(méi)有創(chuàng)造出相應(yīng)的價(jià)值,芯片內(nèi)只有20%的區(qū)域處于活躍狀態(tài),這顯然不夠科學(xué)。
“PARROT”創(chuàng)造了一種嶄新的雙核概念,過(guò)去我們談?wù)摰碾p核心指的是在一枚芯片內(nèi)集成兩個(gè)對(duì)等的CPU內(nèi)核,通過(guò)并行運(yùn)算獲得性能增益,我們可以將它看作是橫向維度的對(duì)等設(shè)計(jì)。而“PARROT”則是一種縱向維度的雙核理念,熱核與冷核地位并不對(duì)等,且無(wú)法獨(dú)立運(yùn)作,只能說(shuō)是一個(gè)CPU內(nèi)核中的兩部分分立邏輯。它所起到的是提高CPU的硬件資源利用率,以高執(zhí)行效率達(dá)到高效能的目的,這種做法顯然比目前業(yè)界鼓吹的“雙核心”更具革命意義。我們不妨深入分析“PARROT”的微架構(gòu)(圖2所示),處理器執(zhí)行管道被分為“冷管道(Cold Pipe)”和“熱管道(Hot Pipe)”兩部分,二者都擁有彼此獨(dú)立的取指和執(zhí)行單元,當(dāng)處理器讀取程序指令時(shí),會(huì)預(yù)先對(duì)其作分析,以判定它是歸屬于“熱代碼”還是“冷代碼”。若為活躍的“熱代碼”,則將其送入“熱管道”邏輯進(jìn)行高效處理;如果屬于“冷代碼”,那么將其送入“冷管道”邏輯處理,所得結(jié)果最終再作匯總輸出。
圖2 PARROT微架構(gòu),CPU被劃分為相對(duì)獨(dú)立的兩個(gè)執(zhí)行管道。
圖3所示為“PARROT”處理器的詳細(xì)執(zhí)行路徑情況,我們可以看到,“冷管道”部分相對(duì)簡(jiǎn)單,只有“指令緩存(Instruction Cache)”、“冷執(zhí)行單元(Cold Execution)”和“分支預(yù)測(cè)單元(Branch Prediction)”,占據(jù)少量的晶體管即可。而“熱管道”部分則顯得相當(dāng)復(fù)雜,它由“追蹤緩存(Trace Cache)”、“追蹤預(yù)測(cè)單元(Trace Prediction)”、“熱執(zhí)行單元(Hot Execution)”、“追蹤優(yōu)化(Trace Optimizer)”以及“追蹤選擇過(guò)濾&構(gòu)建(Trace Select Filter&Build)”等幾大邏輯單元共同構(gòu)成,每個(gè)邏輯都被設(shè)計(jì)得盡可能強(qiáng)大。計(jì)算結(jié)果生成之后,再由“同步合成單元(Synchronized Commit)”組合匯總,最后才通過(guò)前端總線輸出給計(jì)算機(jī)內(nèi)存,由此完成整個(gè)運(yùn)算過(guò)程。
圖3 基于PARROT思想的X86處理器邏輯結(jié)構(gòu)—冷代碼與熱代碼在執(zhí)行階段被彼此分離。
PARROT的新奇思路令人耳目一新,通過(guò)對(duì)執(zhí)行單元的結(jié)構(gòu)性優(yōu)化,X86處理器可以說(shuō)是獲得了重生。設(shè)計(jì)者可以對(duì)“熱核”部分進(jìn)行大大強(qiáng)化,使之擁有更高的效能,在執(zhí)行多數(shù)任務(wù)時(shí)用戶都可感覺(jué)到立竿見(jiàn)影的性能提升,而對(duì)于冷核的必要壓縮則大幅度節(jié)省了晶體管資源,并可達(dá)到明顯降低芯片功耗的目的。設(shè)計(jì)者可以在晶體管規(guī)模不變的前提下,讓X86處理器獲得數(shù)倍的效能提升。毫無(wú)疑問(wèn),PARROT對(duì)于深陷困境的X86架構(gòu)無(wú)疑是雪中送炭,X86處理器將因此出現(xiàn)跨越性的技術(shù)進(jìn)步。而換個(gè)角度看,PARROT完全可以說(shuō)是RISC思想的偉大勝利,80/20法則再度成為魔法的關(guān)鍵,只不過(guò),上一次 IBM基于此建立了偉大的RISC指令系統(tǒng),而這次是Intel在保持X86軟件兼容的前提下,成功實(shí)現(xiàn)了對(duì)微處理器結(jié)構(gòu)的優(yōu)化,兩種做法可謂是殊途同歸。據(jù)悉,PARROT技術(shù)將在2007年開(kāi)始進(jìn)入實(shí)用,“Merom”將成為首款基于PARROT思想的處理器內(nèi)核。大家一定看過(guò)這樣的新聞:2007 年Intel的服務(wù)器處理器、桌面處理器和移動(dòng)處理器都將采用“Merom”內(nèi)核,無(wú)論性能還是功耗都將有出色的表現(xiàn),我們有足夠的理由對(duì)它寄以厚望。
聯(lián)系客服