i860处理器之介绍
I860回顧與IA-64分析 文 / Paul DeMone 譯 / 姚家華 日期 / 2000-1-27
*我的代號是N10你也可以稱我為I860
11年前Intel在ISSCC舊金山發表第一個1百萬顆電晶體微處理器震驚全世界,微處理器的全名為80860,是一種32位元RISC處理器,也就是所知的i860,開發使用的是x86為基礎的電腦,代號為N10,Intel很明顯的是要對抗RISC處理器為主的工作站和伺服器技術市場, Intel的i860是值得重視而且傳統的RISC處理器,他有32個32位元一般用途整數暫存器R0到R31以及32個32位元浮點暫存器F0到F31,能夠使用一對偶數/奇數儲存64位元浮點數值,I860的指令很稀少但是能聚集整數,邏輯,分枝,和記憶體運算,它在1.0um2層金屬CMOS程序上佔用155mm2 die製程,i860包含4kbytes指令快取,和8kbytes資料快取,每個2路組合成64位元寬資料匯流排, 但是i860有3個稀有的特徵,第一種是小組的指令來支援3D畫面著色,繪圖單元是小型附加在I860的健全浮點硬體上,它的工具指令給圖像強烈的修改,Z深度修改和Z buffer檢查,第2個是i860雙指令輸出方式在小指令的控制之下的登錄和退出能力,在雙指令模式i860能在每週期輸出一個整數和一個浮點指令,可惜這些在登錄和退出雙指令模式是2週期lantency,所以這很難去使用,除非小心的用手寫組合語言計算和繪圖核心,如下圖所示:
*最後結果: 1M浮點
第三個稀有的特點是I860最複雜的結構也是最難使用的部份-浮點管線和裝載儲存指令,i860的FPU支援浮點指令和特殊管線指令這兩種傳統類型,它直接暴露出I860裡面浮點硬體到指令清單管線的latency,例如管線浮點複合指令pfmul.p src1,src2,dest將在浮點暫存器計算2個運算域結果代表src1和src2,但是結果數值儲存在浮點暫存器代表dest,依*精確度將會提早執行pfmul.p指令輸出,而目前src1和src2值同時相乘的結果將放置在dest暫存器,指定以後,第2或第3次pfmul.p指令執行,這種管線系統展示在圖解2,浮點管線相加指令有每3週期1個latency,注意7個浮點管線相加指令是使用4次加法執行.
浮點管線指令常數要小心編碼來隱藏浮點管線的latency,以實現較高的性能,讓傳統的指令納入RISC處理器,然而支援的管線指令並非存在於I860編輯器中,一年之後處理器只有使用手寫組合語言例行程序,非常的耗時而且容易出錯,Intel i860最後結果是得到較大的浮點,i860新提高效能的特色像是雙指令型式和浮點管線指令,這證明了它難以編輯,具有百萬電晶體的i860以40Mhz速度等級,其Linpack MFLOP/s和SPEC98效能大約相同於有10萬顆電晶體的33Mhz MIPS R3000A處理器,由於I860市場接受度差,以I860為主的工作站市場也相繼退出.
微軟公司最早也有使用I860作為NT作業系統,實際上有些人聲稱NT字母是解釋成"New Technology",其真正是來自i860的代號發展而來的(NT又名N Ten),傳聞微軟程式師不喜歡i860是因為i860程式不但難寫而且臭蟲也多,因此i860 NT被終止加上MIPS處理器被採用取代x86 CISC平台架構. I860在高階繪圖卡和浮點數位信號處理有很好的成就,Intel本身就把i860大量組合成Paragon系列平行超級電腦,雖然最後還是退出市場,Intel也有發展出第二代i860,有2千5百50萬顆電晶體,0.8um 3層金屬CMOS製程,可以跑50Mhz,第二版i860又名為i860XP. *跟以前一樣自誇 在1989年推出的i860和今年將登場的Itanium,他們之間有很多類似的地方,這些共同點都是Intel強大市場的動力來影響驅使電腦發展,現在大多數的市場都回應Intel的主張,他們的新超級晶片的出現使得現有RISC工作站和伺服器市場難以生存,甚麼樣的打擊使得11年前i860做成現在的IA-64處理器,甚至一些宣傳處理器的方式與過去10年差不多,在1989年Intel有足夠的能力聲稱i860是RISC-like處理器,但是在1990年Intel的市場銷售部門面臨Intel本身64位元RISC-like處理器回歸x86的問題,他們花了10年時間向客戶說明他們不需要將x86放回RISC-based電腦,為解決這個窘境他們想出EPIC(Explicity Parallel Instruction Computing)來解釋EPIC不只是IA-64架構而是全新的類型. 在諷刺的觀點I860和IA-64是一樣的,大多推測其特殊的IA-64只不過是擴充10年前I860一些新特色罷了,對於提升效能的承諾已經失敗,因為編輯器在那個時代難以被有效利用,EPIC和IA-64一個重要的特色是明確的平行,畢竟它是EPIC首字母縮寫,在IA-64的明確平行是以5小段區域128位元長束混合3個指令,指令裡面並非全然是聚集在一起,指令集表明樣式的數值,它聚集一個或多個指令全體服從一套規則互相依*來確保所有指令在群組中都能同時被執行,IA-64一串指令能包含兩個指令集但指令集能擴展至多串集,這個系統可由圖表3做說明.
但是這系統在概念上沒有與明確編碼的登入,退出有所不同,雙指令方式(DIM)使用專用一小段指令命令也被Intel i860 RISC微處理器所使用,IA-64另外一個特色是輪換暫存器系統來協助軟體流水線程式循環,含有128個一般用途暫存器R0到R127最上層96能在一般暫存器重新命名基數區域數值轉換,同時最上層96的128個浮點暫存器F0到F127也能經由改變浮點暫存器數值數值基數轉換,IA-64包含一些分枝指令來減少兩者重新命名基數區域所產生的副作用,原因是出在軟體先前的R32數值在R33,R33的舊數值在R34諸如此類到R127的舊數值在R32為止,如圖表4,IA-64程式碼段利用暫存器的循環如同I860程式碼使用浮點管線指令迴旋是一樣的.
Intel從i860瓦解中學到甚麼?
比較重要的是記住IA-64的編碼器必須要在指令組之間明確的安排指令以及分明附屬關係,以及利用複雜的裝置像是編輯器的循環來達到高性能表現,補償IA-64死板的in-order清單執行模式,所以編碼器使得IA-64比I860處理器更具有競爭力,如果I860的編輯器不用難處理的架構也許I860的效能水準仍可以與RISC處理器相抗衡,但是IA-64編輯器無法從明確指令集中獨立指令,斷定和暫存器循環壓榨出更多足夠的優勢,那麼IA-64處理器無法與超純量RISC處理器技術相競爭.
結論
在很多方面來說Intel即將推出的IA-64是屬於64位元RISC-like處理器,它將成為工作站和商用伺服器市場產品,回憶11年前i860發表的悲慘教訓,如同今日Intel他們強大銷售部門大肆宣傳他們的產品,很明顯的業界正壓迫著他們而且不幸的是在Intel的第二線逐一反映出來,大多觀察家在想新的處理器將會很快的分食RISC處理器家族,如同早先x86 CISC處理器戰勝Motorola的680x0市場地位一樣,但是驚訝的是專門電腦市場忽視i860使它快速消失,Intel顯然已改正許多原先的錯誤來發表IA-64家族,可是IA-64設計上比I860缺乏編輯器的弱點還更嚴重,所以技術上的成功是難以保證的,不過考慮到投資金額和Intel公司承諾IA-64將保證x86相容性,看來IA-64也不太可能在業界中失敗. The End |