3.指令集之爭
英特爾在微軟的幫助下,在商業(yè)上打贏了對摩托羅拉一戰(zhàn)。在接下來的十年里,它在技術上又和全世界打了一戰(zhàn)。
當今的計算機系統(tǒng)結(jié)構(gòu)可以根據(jù)指令集合分成復雜指令(cisc)和簡單指令(risc)兩種。一個計算機的程序最終要變成一系列指令才能在處理器上運行。每個處理器的指令集不相同。有些處理器在設計時候,盡可能地實現(xiàn)各種各樣、功能齊全的指令,這包皮括早期ibm和dec的全部計算機,今天的英特爾和amd的處理器等等。采用復雜指令系統(tǒng)的處理器芯片的好處是它可以實現(xiàn)很復雜的指令,但是它存在主要問題有兩個,第一,設計復雜,實現(xiàn)同樣的性能需要的集成度高;第二,由于每個指令執(zhí)行時間不一樣長,處理器內(nèi)部各個部分很難流水作業(yè),處理器會出現(xiàn)不必要的等待。除此之外,還有一個過去不是問題現(xiàn)在是問題的缺陷,就是復雜指令芯片高集成度帶來的高功耗。
針對復雜指令的處理器的上述兩個不足之處,八十年代,計算機科學家們提出了基于精簡指令集的處理器設計思想,其代表人物是現(xiàn)任斯坦福大學校長、美國科學院、工程學院和文理學院三院院士軒尼詩(johnhennessy)教授和加大伯克利分校著名的計算機教授派特森(davidpatterson)院士。精簡指令系統(tǒng)只保留很少的常用指令并將一條復雜的指令用幾條簡單的指令代替?;诰喼噶罴脑O計思想是計算機發(fā)展史上的一次革命,它使得計算機處理器的設計得到很大簡化,同時由于精簡指令集的處理器可以保證每條指令執(zhí)行時間相同,處理器內(nèi)各部分可以很好地流水作業(yè),處理器速度可以比同時期的基于復雜指令的處理器要來得快。精簡指令集的處理器包皮括很多工作站的處理器和現(xiàn)在最快的sonyps/3游戲機的微處理器ps/3-cell。
雖然復雜指令和精簡指令的處理器各有千秋,但是在學術界幾乎一邊倒地認為復雜指令集的設計過時了,精簡指令集是先進的。尤其是美國所有大學計算機原理和計算機系統(tǒng)結(jié)構(gòu)兩門課全是用軒尼詩和派特森合寫的教科書。在很長時間里,書中以介紹軒尼詩自己設計的mips精簡指令芯片為主。同時,ieee和acm系統(tǒng)結(jié)構(gòu)的論文也以精簡指令為主。英特爾設計8086時還沒有精簡指令的芯片,否則我想,英特爾很可能會采用這種技術,而不是復雜指令系統(tǒng)。而一旦走上了復雜指令這條不歸路,英特爾為了和8086完全兼容,在以后的80286和80386中必須繼續(xù)使用復雜指令系統(tǒng)。在八十年代中后期,不少精簡指令的處理器做出來了,包皮括軒尼詩設計的mips,后來用于sgi工作站,以及派特森設計的risc,后來用于ibm的工作站。精簡指令芯片的速度當時比的復雜指令的要快得多。
到了八十年代末,英特爾面臨一個選擇,是繼續(xù)設計和以前x86兼容的芯片還是轉(zhuǎn)到精簡指令的道路上去。如果轉(zhuǎn)到精簡指令的道路上,英特爾的市場優(yōu)勢會蕩然無存;如果堅持走復雜指令的道路,它就必須逆著全世界處理器發(fā)展潮流前進。在這個問題上,英特爾處理的很理智。首先,英特爾必須維護它通過x86系列芯片在微處理器市場上確立的領先地位;但是,萬一復雜指令的處理器發(fā)展到頭了,而精簡指令代表了未來的發(fā)展方向,它也不能坐以待斃。英特爾在推出過渡型復雜指令集的處理器80486的同時,推出了基于精簡指令集的80860。這個產(chǎn)品事實證明不很成功,顯然,市場的傾向說明了用戶對兼容性的要求比性能更重要。因此,英特爾在精簡指令上推出80960后,就停止了這方面的工作,而專心做"技術落后"的復雜指令系列。在整個九十年代,工業(yè)界只有英特爾一家堅持開發(fā)復雜指令集的處理器,對抗著整個處理器工業(yè)。
應該講英特爾在精簡指令處理器的工作沒有白花,它在奔騰及以后的處理器設計上吸取了risc的長處,使得處理器內(nèi)部流水線的效率提高很多。由于英特爾每一種pc機處理器的銷量都超過同時代所有的工作站處理器銷量的總和,它可以在每個處理器的開發(fā)上投入比任何一種精簡指令處理器多的多的研發(fā)經(jīng)費和人力,這樣,英特爾通過高強度的投入,保證了它處理器性能提升得比精簡指令還要快。而在精簡指令陣營,九十年代五大工作站廠家太陽、sgi、ibm、dec和hp各自為戰(zhàn),每家都生產(chǎn)自己的精簡指令處理器,加上摩托羅拉為蘋果生產(chǎn)的powerpc,六家瓜分一個市場,最后誰也做不大、做不好。到了2000年前后,各家的處理器都做不下去了,或者全部或者部分地開始采用英特爾的產(chǎn)品了。而最早的精簡指令的mips處理器現(xiàn)在幾乎沒有人用了。軒尼詩和派特森作為兩個負責任的科學家,將英特爾處理器加入到自己編的教科書中,以免大學生們再去學習 mips這樣的恐龍。
英特爾經(jīng)過十年努力終于打贏了對精簡指令集的處理器之戰(zhàn)。需要強調(diào)的是,英特爾不是靠技術,而是靠市場打贏的此戰(zhàn)。英特爾的表現(xiàn)在很多地方很值得圈點。首先,英特爾堅持自己系列產(chǎn)品的兼容性,即保證以往的軟件程序肯定能在新的處理器上運行。這樣時間一長,用戶便積累了很多在英特爾處理器上運行的軟件。每次處理器升級,用戶原來的軟件都能使,非常方便。因此大家就不愿意輕易更換其它廠家的處理器,即使那些處理器更快。而其它處理器生產(chǎn)廠家這點做的都沒有英特爾好,它們常常每過幾年就重起爐灶,害得用戶以前很多軟件不能用了,必須花錢買新的。時間一長,用戶就換煩了。第二,英特爾利用規(guī)模經(jīng)濟的優(yōu)勢,大強度投入研發(fā),讓業(yè)界普遍看衰的復雜指令集處理器一代代更新。在九十年代初,英特爾的x86系列和精簡指令集的處理器相比在實數(shù)運算上要略遜一籌。但是,英特爾十幾年來堅持不懈地努力,后來居上,而其它廠商因為各自市場不夠大,每一個單獨的處理器芯片的投入遠遠不如英特爾,因此反倒落在了后面。與其說英特爾戰(zhàn)勝其它廠商,不如說它把競爭對手熬死了。第三,英特爾并沒有拒絕新技術,它也曾經(jīng)研制出兩個不錯的精簡指令的處理器,只是看到它們前途不好時,立即停掉了它們。第四,英特爾運氣很好,在精簡指令處理器陣營中,群龍無首。這一戰(zhàn),看似英特爾單挑諸多處理器領域的老大。但是,這幾家做精簡指令處理器的公司因為彼此在工作站方面是競爭對手,自然不會用對手的產(chǎn)品,而且各自為戰(zhàn),互相拆臺打價格戰(zhàn),最后,太陽公司和ibm倒是把其他幾家工作站公司全收拾了,但自己也無力和英特爾競爭了,現(xiàn)在這兩家自己也用上了英特爾的芯片。本來,摩托羅拉最有可能一統(tǒng)精簡指令處理器的天下和英特爾分庭抗禮,因為它本身不做工作站,而各個工作站廠商原本都是用它的68000系列處理器,但是摩托羅拉自己不爭氣。原因我們前面已經(jīng)分析過了。