以製造為出發點,極度重視成本及效益

自1971年創造全球首顆微處理器4004、在1978年8086被選為IBM PC的處理器而踏上半導體大廠之路,至今英特爾已經穩坐全球半導體產業的龍頭,在IT產業有著無與倫比的影響力。就以半導體產業而言,英特爾甚至早已遠邁藍色巨人IBM。

不過,在英特爾的歷史上,充滿了諸多備受產業界及學術界爭議的架構及產品設計,除了已經在教科書上遺臭萬年的x86/x87指令集、命徒多舛的i432、「Cray on a chip」的i860、和i432貌同實異的i960、市場尚未成熟就已進入「指令集設計錯誤示範觀察名單」的IA-64等等,不少微處理機的微架構更成為眾矢之的,在當時承受了排山倒海般的批判。這些被視為「毫無道理可循」的決策,究竟是基於何種特殊的想法?為何這家公司還能這麼成功?我們現在就從英特爾的歷史,來幫助讀者了解英特爾的思維模式,這也有助於理解這家公司的獨到之處。極度著重成本與效益的觀念

近年來熟悉半導體及微處理器業界的人,應該都會記得英特爾歷史上一個極為重要的里程碑:從1996年的Pentium MMX(P55C)及1997年的Pentium II(Klamath)開始,英特爾放棄從Pentium開始已經投入數年的BiCMOS(雙極性CMOS)製程,轉回傳統的CMOS。當初英特爾之所以會導入BiCMOS,主因在於希望可以達成最好的時脈速率,但是基於降低耗電及晶粒面積的考量,後來放棄了,再也沒有回頭。外界普遍將其視為英特爾策略上的重大轉折,從此走上高度追求成本效益的路線。換言之,採用昂貴的特殊製程,不如竭盡所能的進行成熟製程的縮小化。

另一個例子,則是數年前以IBM為首的眾多處理器廠商,競相投入銅導線製程,英特爾卻依然堅守鋁導線,所以創造了「沒有銅的銅礦」(Pentium 3 180nm製程核心的代號為Coppermine)。當時英特爾認為,銅導線製程尚未成熟,鋁導線依然有相當大的應用潛力。後來,英特爾是直到130nm製程的Northwood才導入銅導線,遠落後於其它廠商。但是,英特爾並沒有因此吃虧,依然維持對競爭對手處理器產品效能及時脈上的優勢。目前英特爾對SOI晶圓的保守態度,就是一個很好的佐證。

但是,這並不代表英特爾的製程研發就只會拾人牙慧、跟著別人的屁股跑,有別於一窩瘋追隨IBM的長期現象,它們在製程研發的路線選擇上一向非常的睿智,獨樹一幟,也甚少與其它廠商在製程上採取合作手段。以極為熱門的3維結構電晶體技術為例,它們跳過眾多廠商發展中的雙邏輯閘鰭狀場效電晶體(FinFET),直接研發三邏輯閘的Tri-Gate電晶體,諸多例子不勝枚舉。

英特爾著重成本及效益、希望可以將同樣的資源做到最大限度利用的態度,也充分反映在處理器微架構的設計上,相較於競爭對手,英特爾的處理器微架構都有著遠較為長的市場壽命。 就以英特爾的x86處理器經典微架構P6來說,從1996年的Pentium Pro開始,直到目前的Pentium M,幾乎有著將近十年的時間,而競爭對手AMD陸續推出K5/K6/K7/K8、Cyrix出現M1/M2以及難產的M3,但是都無法動搖英特爾P6微架構在市場上的主導地位,直到NetBurst微架構的Pentium 4出現為止。P6的諸多優秀設計以及幾近完美的取捨,推出至今已經超過10倍的時脈成長,應用範圍從伺服器一路延伸至筆記型電腦,都足以證明其遠見和前瞻。稱P6是英特爾甚至x86最成功的處理器微架構,實當之無愧。

無論是P6以及現在的NetBurst,均遭受「因過度追求時脈而忽略IPC」的批判。其實,我們可以輕易理解英特爾的想法,因為x86指令集本身所能達成的指令平行化執行能力極為有限,發展類似RISC處理器的大型化複數執行單元並不划算,因為執行單元利用率並不高,這從英特爾的x86處理器均無專屬的位址計算單元(AGU)就可略見一二。近期導入的超執行緒(Hyper-Threading)更是明顯的證明,希望將現有處理器的運算資源發揮到最高的程度。這種觀念,一直主導著英特爾所有的產品設計。以「製造」做為思考的出發點

不過,相較於睿智的微架構設計及製程技術研發,英特爾在指令集的架構上,卻是淪落到過街老鼠差可比擬的窘境。x86/x87指令集是如何的飽受批評,這已經不必浪費篇幅來描述了,大概情況只比Digital VAX好一點點,但是,現在連全新設計的IA-64也遭遇到類似的處境。照例說,指令集架構應該基於長遠的考量。換言之,指令集架構是戰略,處理器產品實作是作戰,而生產就是戰術。但是,英特爾所發展出來的指令集可以說一個比一個詭異,到底問題出在哪裡?答案很簡單,因為英特爾是以「利於製造」做為思考的出發點。套句普魯士名將老毛奇的名言:只要戰術成功,戰略可以讓步。這也許就是英特爾設計指令集的信念。

我們先檢討英特爾在x86處理器的新增指令方式,往往很多按照常理而言應該提供的指令,英特爾不是不提供、就是拖很久才提供,例如在SSE不提供乘積和(FMA)、以及在SSE3才提供浮點整數資料型別轉換指令(fisttp),外加本屆IDF發表NX記憶體保護卻沒有提供分頁表NX位元等,均飽受抨擊。另外,英特爾習慣針對單一的硬體微架構提供特殊的指令,但是轉換到另一個微架構,這些指令就沒有用處了,直接受害者就是其它廠商的x86相容處理器。

相較於x86的疊床架屋,毫無包袱的IA-64更是到了讓人匪夷所思的程度。首先,IA-64的整數乘法指令,並不能直接使用乘法暫存器,而是必須先把值傳遞至浮點暫存器才能執行。另外,IA-64並沒有提供浮點除法指令,而是必須用乘積和指令進行倒數運算。最後,IA-64沒有sign-extended載入指令、從記憶體載入32位元值至64位元暫存器時就必須浪費不少時間。更讓人感到納悶的是,IA-64並沒有基底偏移([base + disp])定址模式,這和傳統的載入儲存架構相比,就會增加有效位址就必須事先計算的麻煩。很明顯的,這些都是屈就實作及生產限制所作出的讓步,上述的例子僅為冰山的一角。種種因素的累積,導致IA-64並不是一個簡潔的指令集架構,這些限制日後一定會造成英特爾的大麻煩。

目前還有一種普遍的看法:英特爾刻意讓指令集變得更複雜、更難實作,以提高其它廠商製作相容產品的技術門檻。當然,這是絕對沒有確切證據可以證實的。不過,從x87浮點指令集的創造者William Kahan事後的看法,似乎這種觀點所言不虛。唯一可以確定的是,英特爾自己一定可以順利的推出新產品,其它廠商就不一定了。

英特爾不但習慣從製造角度思考,也容易陷入「硬體征服一切」的思考巢臼,這在過去讓英特爾吃過不少苦頭,最好的例子莫過於IA-64處理器硬體實作對x86指令集的相容性。當初英特爾認為可以輕易的透過硬體手段達成高速的x86指令執行效能,然後再藉由較高的時脈維持對x86處理器的效能優勢,最後達成IA-64逐步取代x86的戰略目標。

事後證明,這變成了一個大災難,不但大幅增加了處理器的複雜度、提升產品設計及驗證的成本,更直接導致代號Merced的第一代Itanium處理器一再延期。從錯誤的第一步開始,種種因素導致Itanium今天的窘境。英特爾是直到決定發展IA-32EL模擬器才真正體認到問題的嚴重性,計畫未來的Itanium處理器將不會實作吃力不討好的硬體相容,但是這已經來不及了,現在大概少有人相信IA-64還有取代x86的機會。

不過,近年來英特爾已經逐漸擺脫單獨倚靠硬體換取效能的想法,不但在自行研發的編譯器及開發工具上投入不少心力,從Hyper-Threading的誕生更可以看出英特爾的改變:有效利用既有軟體的資源,最經濟的提升處理器的效能。這也證明了,英特爾並不是一家無法歷史中學到教訓的公司。特殊思維逐漸延伸至市場策略

半導體產業一直有一個說法:其它的廠商都是先決定功能再研發製程,而英特爾則是在既有的製程上選擇可提供最大獲利的功能設計。基於這樣的思維,英特爾理所當然的退出獨立顯示晶片市場,因為那是晶圓單位獲利最低的產品。反過來說,也因此,英特爾全力投入整合型晶片組,也是一樣的想法,因為晶片組的晶粒面積都不大,增加繪圖功能反而可以大幅提升產品的價值。

不過,因為英特爾一以貫之的追求最大的效益,不在產品功能性上斤斤計較,這種做法,也往往避免了理想過高、導致產品實作不順及良率過低的問題,更可以免除最後被迫犧牲既定的功能、東縮西減的窘境。在商業化的市場上,是否可以穩定的推出新產品、新設計,持續的驗證、累積新技術的基礎,往往遠比強大的產品功能更加的重要。雖然奇謀而短,卻仍是最成功的半導體廠商

英特爾獨特的思維模式使其毀譽參半。肯定的人,認為這是非常成功的商業模式,造就全球最大的半導體霸權;否定的人,則認為英特爾非常的市儈、缺乏格調,難登大雅之堂。不過,在商業市場上均以成敗論英雄,英特爾也是持之以恆的維持世界頂尖的製程技術及產能,在製程技術發展上選擇極為獨特的路線,才能有今天的成就,這些都是不能否認的。如此的思維,卻又能如此的成功,一再擊出「逆向思考全壘打」,歷史上恐怕也找不出幾個例子吧。文⊙劉人豪


Advertisement

更多 iThome相關內容