主頁 類別 政治經濟 浪潮之巔

第30章 第3節指令集之爭

浪潮之巔 吴军 2625 2018-03-18
英特爾在微軟的幫助下,在商業上打贏了對摩托羅拉一戰。在接下來的十年裡,它在技術上又和全世界打了一戰。 當今的計算機系統結構可以根據指令集合分成複雜指令(CISC)和簡單指令(RISC)兩種。一個計算機的程序最終要變成一系列指令才能在處理器上運行。每個處理器的指令集不相同。有些處理器在設計時候,盡可能地實現各種各樣、功能齊全的指令,這包括早期IBM和DEC的全部計算機,今天的英特爾和AMD的處理器等等。採用複雜指令系統的處理器芯片的好處是它可以實現很複雜的指令,但是它存在主要問題有兩個,第一,設計複雜,實現同樣的性能需要的集成度高;第二,由於每個指令執行時間不一樣長,處理器內部各個部分很難流水作業,處理器會出現不必要的等待。除此之外,還有一個過去不是問題現在是問題的缺陷,就是複雜指令芯片高集成度帶來的高功耗。

針對複雜指令的處理器的上述兩個不足之處,八十年代,計算機科學家們提出了基於精簡指令集的處理器設計思想,其代表人物是現任斯坦福大學校長、美國科學院、工程學院和文理學院三院院士軒尼詩(John Hennessy)教授和加大伯克利分校著名的計算機教授派特森(David Patterson)院士。精簡指令系統只保留很少的常用指令並將一條複雜的指令用幾條簡單的指令代替。基於精簡指令集的設計思想是計算機發展史上的一次革命,它使得計算機處理器的設計得到很大簡化,同時由於精簡指令集的處理器可以保證每條指令執行時間相同,處理器內各部分可以很好地流水作業,處理器速度可以比同時期的基於復雜指令的處理器要來得快。精簡指令集的處理器包括很多工作站的處理器和現在最快的SonyPS/3遊戲機的微處理器PS/3-Cell。

雖然複雜指令和精簡指令的處理器各有千秋,但是在學術界幾乎一邊倒地認為複雜指令集的設計過時了,精簡指令集是先進的。尤其是美國所有大學計算機原理和計算機系統結構兩門課全是用軒尼詩和派特森合寫的教科書。在很長時間裡,書中以介紹軒尼詩自己設計的MIPS精簡指令芯片為主。同時,IEEE和ACM系統結構的論文也以精簡指令為主。英特爾設計8086時還沒有精簡指令的芯片,否則我想,英特爾很可能會採用這種技術,而不是複雜指令系統。而一旦走上了複雜指令這條不歸路,英特爾為了和8086完全兼容,在以後的80286和80386中必須繼續使用複雜指令系統。在八十年代中後期,不少精簡指令的處理器做出來了,包括軒尼詩設計的MIPS,後來用於SGI工作站,以及派特森設計的RISC,後來用於IBM的工作站。精簡指令芯片的速度當時比的複雜指令的要快得多。

到了八十年代末,英特爾面臨一個選擇,是繼續設計和以前x86兼容的芯片還是轉到精簡指令的道路上去。如果轉到精簡指令的道路上,英特爾的市場優勢會蕩然無存;如果堅持走複雜指令的道路,它就必須逆著全世界處理器發展潮流前進。在這個問題上,英特爾處理的很理智。首先,英特爾必須維護它通過x86系列芯片在微處理器市場上確立的領先地位;但是,萬一複雜指令的處理器發展到頭了,而精簡指令代表了未來的發展方向,它也不能坐以待斃。英特爾在推出過渡型複雜指令集的處理器80486的同時,推出了基於精簡指令集的80860。這個產品事實證明不很成功,顯然,市場的傾向說明了用戶對兼容性的要求比性能更重要。因此,英特爾在精簡指令上推出80960後,就停止了這方面的工作,而專心做"技術落後"的複雜指令系列。在整個九十年代,工業界只有英特爾一家堅持開發複雜指令集的處理器,對抗著整個處理器工業。

應該講英特爾在精簡指令處理器的工作沒有白花,它在奔騰及以後的處理器設計上吸取了RISC的長處,使得處理器內部流水線的效率提高很多。由於英特爾每一種PC機處理器的銷量都超過同時代所有的工作站處理器銷量的總和,它可以在每個處理器的開發上投入比任何一種精簡指令處理器多的多的研發經費和人力,這樣,英特爾通過高強度的投入,保證了它處理器性能提升得比精簡指令還要快。而在精簡指令陣營,九十年代五大工作站廠家太陽、SGI、IBM、DEC和HP各自為戰,每家都生產自己的精簡指令處理器,加上摩托羅拉為蘋果生產的PowerPC,六家瓜分一個市場,最後誰也做不大、做不好。到了2000年前後,各家的處理器都做不下去了,或者全部或者部分地開始採用英特爾的產品了。而最早的精簡指令的MIPS處理器現在幾乎沒有人用了。軒尼詩和派特森作為兩個負責任的科學家,將英特爾處理器加入到自己編的教科書中,以免大學生們再去學習MIPS這樣的恐龍。

英特爾經過十年努力終於打贏了對精簡指令集的處理器之戰。需要強調的是,英特爾不是靠技術,而是靠市場打贏的此戰。英特爾的表現在很多地方很值得圈點。首先,英特爾堅持自己系列產品的兼容性,即保證以往的軟件程序肯定能在新的處理器上運行。這樣時間一長,用戶便積累了很多在英特爾處理器上運行的軟件。每次處理器升級,用戶原來的軟件都能使,非常方便。因此大家就不願意輕易更換其它廠家的處理器,即使那些處理器更快。而其它處理器生產廠家這點做的都沒有英特爾好,它們常常每過幾年就重起爐灶,害得用戶以前很多軟件不能用了,必須花錢買新的。時間一長,用戶就換煩了。第二,英特爾利用規模經濟的優勢,大強度投入研發,讓業界普遍看衰的複雜指令集處理器一代代更新。在九十年代初,英特爾的x86系列和精簡指令集的處理器相比在實數運算上要略遜一籌。但是,英特爾十幾年來堅持不懈地努力,後來居上,而其它廠商因為各自市場不夠大,每一個單獨的處理器芯片的投入遠遠不如英特爾,因此反倒落在了後面。與其說英特爾戰勝其它廠商,不如說它把競爭對手熬死了。第三,英特爾並沒有拒絕新技術,它也曾經研製出兩個不錯的精簡指令的處理器,只是看到它們前途不好時,立即停掉了它們。第四,英特爾運氣很好,在精簡指令處理器陣營中,群龍無首。這一戰,看似英特爾單挑諸多處理器領域的老大。但是,這幾家做精簡指令處理器的公司因為彼此在工作站方面是競爭對手,自然不會用對手的產品,而且各自為戰,互相拆台打價格戰,最後,太陽公司和IBM倒是把其他幾家工作站公司全收拾了,但自己也無力和英特爾競爭了,現在這兩家自己也用上了英特爾的芯片。本來,摩托羅拉最有可能一統精簡指令處理器的天下和英特爾分庭抗禮,因為它本身不做工作站,而各個工作站廠商原本都是用它的68000系列處理器,但是摩托羅拉自己不爭氣。原因我們前面已經分析過了。

按“左鍵←”返回上一章節; 按“右鍵→”進入下一章節; 按“空格鍵”向下滾動。
章節數
章節數
設置
設置
添加
返回