近期因為RISC-V的蓬勃發展,再度引爆指令集架構優劣的討論,讓人看似RISC好像是最近才崛起的新概念,但你知道在1980年代初期到1990年代末期,曾有諸多盤據高階伺服器與工作站的RISC指令集體系極盛一時嗎?
稍有年紀的科科,只要在學生時代常跑計算機中心和電腦教室,腦海中一定留下了配備高貴Sony特麗霓虹映像管螢幕與手感不錯鍵盤的Sun Ultra系列工作站,更不會忘記那被戲稱 “Slow-Laris” 的Solaris作業系統與作為心臟的UltraSPARC處理器。
今天以Intel Xeon為首的x86處理器能夠支配伺服器市場與資料中心,在1990年代初期根本是令人難以想像的場景。但在1984年,那個連個人電腦都尚未普及的年代,Sun的第二十一名員工John Gage的名言「網路就是計算機 (The Network Is The Computer)」,卻預言了雲端運算的未來—只是Sun這間公司沒有撐到這一天。
成立於1982年2月、全名源自於”Stanford University Network (史丹佛大學網路)”的Sun Microsystems,這間公司究竟有多偉大?筆者就隨便舉幾個例子:
-
標準化軟硬體、開放式架構工作站的起源。
-
曾是最普及商用Unix的Solaris作業系統。
-
Java程式語言。就算對電腦再不懂,看到這個大概也不可能沒有感覺。
-
MySQL資料庫。這個也很大尾。
-
從Solaris 10開始出現的DTrace效能分析工具。
-
NFS網路檔案系統。
-
諸多膾炙人口的大型多處理器伺服器。
-
無數的軟硬體創新。
-
最後,SPARC指令集的創始者,與UltraSPARC處理器的發展者。
這些都是出自於Sun手上的傑作。你可以再多看幾次,我會等你。
因為Sun的三位創辦人都是史丹佛大學研究生,從誕生到往生,Sun一直保有濃濃的學術味與起源於學校的開放思想。在十幾年前,Sun尚未被Oracle併購之時,曾有Sun的高階主管,當面對筆者這樣形容他們的企業文化:這間公司感覺就很像一間「大學」。
這也深深了影響Sun自行研發的RISC指令集處理器。Sun在1984年開始進行SPARC (Scalable Processor Architecture,可擴展式處理器架構) 指令集的研究,而開發顧問則是大名鼎鼎的David Patterson。Sun在1986年發布32位元的SPARC v7指令集。SPARC深受早期RISC「精簡」思潮的薰陶,希望所有的運算動作都可單時脈週期搞定並高度的管線化,像整數除法之類的「複雜」指令就付之闕如,透過重複的簡單運算而取代之,這部份到了1990年的SPARC v8才補完。
但Sun並不像其他廠商自己做晶片,而是定義嚴謹的版本並將其開放出來,讓其他廠商也可以研製SPARC指令集相容處理器,1987年問世的Sun-4系列工作站,其處理器來源是日本Fujitsu與Cypress (分別搭配來自Weitek和TI的浮點輔助運算器)。世界上首顆被實做出來的SPARC指令集相容處理器,也並非出自於Sun,而是1986年的Fujitsu MB86900。這也奠定了「公認最好的SPARC處理器幾乎來自Fujitsu」的基礎。
既然擺明走開放路線,Sun在定義指令集時也不會像Intel那樣關起門來自己玩。1995年的SPARC v9擴充到64位元與SIMD指令集VIS (Visual Instruction Set)之後,Sun跟Fujitsu在2002年聯合提出JPS (Joint Programming Specification) 規範並持續演進到UA (UltraSPARC Architecture)、OSA (Oracle SPARC Architecture) 和Fujitsu自行定義的高效能運算HPC-ACE (High Performance Computing – Arithmetic Computational Extensions)。在2009年,為了日本超級電腦「京 (K)」而誕生的SPARC64 VIIIfx,是首款支援HPC-ACE指令集與相對應256個浮點暫存器的處理器。
不限於指令集架構,SPARC也出現了開放VHDL語言原始碼的LEON處理器系列 (使用針對嵌入式應用而生的SPARC v8E指令集),採用LGPL授權,並由非營利的SPARC International組織負責管理。Sun也在日後陸續開源了UltraSPARC T1與T2,成為OpenSPARC T1、OpenSPARC S1 (單核心的T1) 和OpenSPARC T2,讓更多人了解教科書和技術文件根本不會教你怎麼下手的實做細節。
接著,筆者就準備介紹SPARC指令集的特色了,科科。
1 則回應