硬科技:豆知識 64位元的x86和IA-64(Itanium)到底有什麼不一樣?

2022.06.22 10:05AM
照片中提到了Itanium ™ Architecture:、Massive Hardware Resources、Traditional,跟惠普展館有關,包含了惠普壁紙高清、線、字形、牆紙、產品

源自於日文的「豆知識」是一種生活中少見的知識,一種另類的知識。可有可無,知道就好,不知道也無所謂。

從2018年1月至今,不學無術的筆者在癮科技發表了超過200篇的硬科技文章,只要一論64位元的x86指令集和Intel原本欽定的64位元真命天子IA-64指令集和Itanium處理器,留言區就常常出現讓筆者滿臉黑直線的「高見」,彷彿後者完全從歷史中銷聲匿跡一樣。

講的不客氣一點,不了解Intel在1990年代的64位元戰略規劃,你就無法徹底了解為何AMD的x86-64會讓Intel陣腳大亂,從心不甘情不願的擴充IA-32e/EM64T、一路直到將其正名為Intel 64讓IA-64逐漸消失的發展軌跡。講的更白話一點,要搞清楚柯南和金田一是怎麼殺人的,也要先把命案現場地上的人形粉筆圈畫出來才行 (喂)。

為悼念Intel NetBurst的失敗而刻下的墓誌銘 (上)

為悼念Intel NetBurst的失敗而刻下的墓誌銘 (中)

為悼念Intel NetBurst的失敗而刻下的墓誌銘 (下)

回顧消失在歷史洪流的Intel旗艦處理器Itanium(上)

回顧消失在歷史洪流的Intel旗艦處理器Itanium(中)

回顧消失在歷史洪流的Intel旗艦處理器Itanium(下)

硬科技:做為x86伺服器象徵的Intel Xeon處理器:混亂期(2004-2006)

硬科技:究竟誰能威脅x86指令集的地位

硬科技:「簡報王」和他們的產地 20年前64位元x86指令集誕生的時刻

各位科科應該都可以理解「極端的另一端」往往也是最壞的選擇,這就好像在二次世界大戰期間,諸多徹底改變戰爭性質的悲劇性革命,最重要的就是困擾俄德兩國者,前者的基礎是列寧和史達林所解釋的馬克思思想,後者的基石則為希特勒所手創的國社黨教條,但無論是「極左」的共產黨和「極右」的法西斯,都是極權主義的思想,嚴重威脅著民主制度的存續。DEC在Alpha實現了對自家VAX的反動,使其精簡過頭,而此類「過猶不及」的史例,更再現於Intel企圖砍掉重練的IA-64。

由Intel攜手HP、緣起於VLIW (超長指令集化) PA-RISC計畫的IA-64指令集,原先目標是承接PA-RISC指令集架構。在當時,Intel正在尋找一種全新的64位元指令集架構來代替x86 (IA-32),結果就是在1995年正式建立合作關係來研製處理器,Itanium就是第一個成員,並將其挖掘指令層級平行化的技術稱之為EPIC (Explicitly Parallel Instruction Computer,顯式並行指令運算),創造了「史詩 (Epic)」級的災難。

照片中提到了IA-64 Architecture:、Explicit Parallelism、Original Source,跟康柏有關,包含了惠普壁紙高清、線、組織、字形、產品

對於IA-64指令集,最精準的評論,來自IBM的Martin Hopkins在2000年微處理器論壇的發言,節錄如下:

「EPIC是以具有大量資源的應用為基礎,這些資源包括更多的載入-儲存單元、計算單元、分支單元、以及較大且快速的快取記憶體;這些資源已經超過一個超純量處理器的需求了。因此,IA-64的設計者孤注一擲,認為功耗在未來不是最重要的限制,並且認為這些豐富的資源以及它們的使用方式所帶來的負面影響 (時脈速率、資料路徑長度、CPI比值) 並不會造成效能的損失。」

總之,x86是「太少」,IA-64卻是「太多」。

後來出師不利的初代Itanium處理器,在800MHz時脈時,SPEC CPU的測試結果,顯示Itanium的整數運算比Alpha 21264 (1GHz) 和Pentium 4 (2GHz) 慢得多,浮點則是快一些,但其效能/功耗比並沒有比Alpha 21264好,而且只有Pentium 4的56%。Intel和HP是很辛苦的在Itanium 2才逐漸步上正軌,但在Intel下定決心在x86處理器市場「脫下褲子跟AMD拼了」之後,身為旗艦產品線的Itanium體系就逐漸的邊緣化。Oracle和微軟的陸續跳船,也替這副棺材打上了最後一根釘子。

照片中提到了Itanium® Processor Family Evolution、64-bit Enterprise Server Technology、Madison,跟英特爾、康柏有關,包含了英特爾、安騰、軟件、中央處理器

IA-64指令集架構的其他缺陷與Intel設計指令集時一直改不掉的壞習慣,就請各位科科複習筆者過去的文章,在此不再贅述。但有件荒謬事,到現在仍讓筆者完全無法接受,那就是關於處理器虛擬化,IA-64指令集身為全新的設計,卻無法符合「波佩克與戈德堡虛擬化需求 (Popek and Goldberg virtualization requirements) 」,還是會跟x86一樣,部份使用者模式指令,可更動系統底層的狀態而且不會製造例外。也因此,Itanium處理器需要追加VT-i (如同x86的VT-x),才能實作處理器虛擬化。

硬科技:為何x86的虛擬化這麼難搞(上)

硬科技:為何x86的虛擬化這麼難搞(中)

硬科技:為何x86的虛擬化這麼難搞(下)

所以你說x86和IA-64到底有什麼不一樣... 嗯,某些「精神」倒還是蠻一致的。科科。

1 則回應