[閒聊] 時代的眼淚系列:Cyrix 的高效能超純量處理器家族(上)

作者: KotoriCute (Lovelive!)   2017-10-25 14:11:26
時代的眼淚系列:Cyrix 的高效能超純量處理器家族(上)
https://technews.tw/2017/10/22/cyrix-part-one/
近來 HTC 以 11 億美元價碼,出售代工部門給 Google 的新聞,讓筆者不得不回憶起,
1997 年 11 月先跟國家半導體合併、隨後出售給 VIA,在高效能 x86 處理器發展史佔有
一席之地的 Cyrix,與史上第一款 Pentium 相容處理器 6×86「M1」。
然後再來就是歷史了。
距今已 22 載的 1995 年,Windows 95 的問世前所未見地刺激個人電腦的市場需求,以
Intel Pentium 為首的高效能超純量(Superscalar)x86 處理器,自然而然成為執行微
軟全新 32 位元作業系統的引擎,而 1995 年底上市的 Intel Pentium Pro,和 1996 年
擁有和 Windows 95 相同使用者介面的 Windows NT 4.0,更敲開了 x86 處理器湧入工作
站與伺服器市場的大門。
在當時,「Pentium 跑 95、Pentium Pro 跑 NT」是不可質疑的搭配,而 Pentium Pro
執行 16 位元程式碼效能不佳的疑慮,更讓這約定俗成的潛規則,更加牢不可破。
但過沒多久,1996 年個人電腦零售市場卻出現了 Intel 以外的另類選擇:價格較廉、時
脈較低、整數運算更強,但浮點運算更弱、使用起來更燙的 Cyrix 6×86「M1」,它也引
爆了短暫的 x86 處理器戰國時代。
1995 年到 2000 年這段期間,堪稱是處理器與顯示晶片市場最熱鬧的時期,這在論 x86
處理器只想到 Intel 和 AMD(可能連 VIA 都快被遺忘了)、顯示晶片僅列出 nVidia 和
AMD 的今天,實在令人難以想像。
微軟視窗作業系統最重大里程碑 Windows 95,和最普及辦公室生產工具 Office 95 的問
世,帶來了個人電腦發展史上最巨大的升級潮與採購潮,遠較過去作業系統更飢渴難耐的
系統效能需求,也刺激了對更高速處理器與更快 2D 視窗加速的需要,吸引來自四面八方
的眾多英雄好漢,瓜分這塊肥美的市場。
套句當時 PC Magazine「Inside Track 專欄」的評論:市場仍可允許 x86 處理器標上不
菲的高價,即使是小廠,只要些許市佔率,即可掠取豐厚的利潤。所以不分新秀老將,像
「有晶圓廠才是真男人」的 AMD、「三百壯士」的 Cyrix、IDT 投資的 Centaur、眾多台
灣企業集資的 Rise、僱用 Linus Torvalds的 Transmeta、AMD K6 起源的 NexGen,甚至
在前蘇聯開發超級電腦背景的 Elbrus 等,無不磨刀霍霍,企圖從 Intel 身上割下一塊
肥肉。
但嚴格說來,真正勉強交出像樣成績單的,除了今天依舊與 Intel 激烈交火的 AMD,就
僅剩 Cyrix 了,其他廠商的表現,實在不用多說。
以舊世代 Intel 處理器腳位進行升級,提供跨代性能表現的 Cyrix
有別於今日 Intel、AMD 的處理器腳位,自從 K7 時代的 Slot A 開始「你走你的陽關道
,我過我的獨木橋」,沒經歷過個人電腦上古時期的讀者,可能較難想像,當初眾多「
Intel 腳位相容處理器」百家爭鳴的盛況,還包含今日少人知悉、在此市場以開發 x87
浮點輔助運算器起家的 Weitek 與 Chips and Technologies(後來被 Intel 購併)等。
筆者曾瞻仰其他網站的「達人高見」:使用與 Intel 相同的插槽,是個人電腦發展史上
極為罕有的情況。拜託,在做主機板可以做到股王的年代(意思就是主機板的價格和獲利
都高到令人髮指),你家的處理器不能和 Intel 共用腳位,才是讓人感到詭異的怪事。
這些廠商的共同點:在比較老舊的 Intel 處理器腳位上,提供接近下一世代產品效能表
現的替代品,搶攻舊系統的升級市場。當然,如果效能和價格具競爭優勢,也有辦法取得
Intel 最新的系統匯流排授權,這些廠商也希望可直接跟 Intel 在相同腳位上硬碰硬,
追求更高產品單價與獲利,並設法攻入 OEM 大廠的供應鏈。
Cyrix 就以此塊市場起家,例如 FasMath 83D87 可裝在 387 的腳位,提供比 Intel
80387 浮點輔助運算處理器多出 50% 的效能,而 486SLC/DLC 則是在 386 平台,帶來部
分 Intel 80486 的特色,如第一階快取記憶體等。
而 Windows 95 推出之際,在 486 系統安裝 Cyrix 5×86(或 AMD 的 Am5x86)的「窮
人第五世代電腦」,更是受學生歡迎的低階 Pentium 替代品,當年光在學生宿舍就不知
見證了多少案例。
https://i.imgur.com/ovt8rFP.png
因延宕而錯失「首款非循序指令執行超純量 x86 處理器桂冠」的 Cyrix 6×86
https://i.imgur.com/aoUnZhF.png
前面提到,Windows 95 與 Windows NT 4.0 帶來的市場動量,引爆了 x86 處理器的效能
革命,CISC 指令集的 x86 處理器,也破除了昔日 RISC 狂信者那「CISC 無法管線化、
無法高時脈、無法超純量」的多年詛咒,從整數運算效能為起點,開始具備挑戰 RISC 諸
神的實力(但浮點運算受制於堆疊架構的 x87 指令集,難以飛躍性成長,這瓶頸到了
SSE 出現後才慢慢消失)。
如同第五世代戰鬥機需要的 3S:匿蹤(Stealth)、超音速巡航(Super Cruise)、超機
動性(Super Maneuverability),所謂 80586 時期的第五世代 x86 處理器,為了高效
能,也同時追求 3 個 S:
※ 超純量(Superscalar):一個時脈可同時執行一個以上的指令。
※ 超管線(Superpipeline):更高的運作時脈與後繼的成長空間。
※ 延展性(Scalability):支援伺服器與工作站市場必備的多處理器環境。
Cyrix 首款正面挑戰 Intel Pentium,甚至在整數運算保有越級挑戰 Pentium Pro 潛力
的 6×86「M1」,擁有前兩項特性,並多出減輕暫存器相依傷害的「暫存器重新命名機制
(非循序指令執行)」與「預測執行」,而缺乏第 3 個要素。當時市場上唯一三者兼備
的 x86 處理器,僅有 1995 年 11 月上市的 Intel 新旗艦 Pentium Pro,而上市時間一
再延宕至 1996 年初,也讓 Cyrix 6×86 痛失了「史上首款非循序指令執行超純量 x86
處理器」的桂冠。
處理器既然是「產品」,產品就必然有「規格」,有規格就自然可以「比一比」,我們就
來比較一下,在預定上市的 1995 年,6×86 跟同期的 x86 處理器(順便拖 MIPS
R10000 進來當 RISC 對照組,讓各位看一下 RISC 全盛期的榮光),規格差在哪裡。
這張和後來實際狀況有點出入的簡略概觀比較,其實就已經隱隱約約散發出對 Cyrix 不
妙的氣息了:製程劣勢,這在 1996 年 Intel 開始大量銷售 0.35 μm(350nm)製程處
理器時,就對 Cyrix 更加不利了。
https://i.imgur.com/2DvHQtU.png
奠定未來數年微架構基礎的 6×86「M1」
https://i.imgur.com/qw9KRtK.png
不過「三分靠打拚,七分天註定」的製程劣勢,帶來更燙的運作溫度和更高的製造成本是
一回事,延宕已久的 Cyrix 6×86 在微架構設計,相較於對手 Intel Pentium,卻頗有
看頭。這裡會花點篇幅仔細介紹,因為之後數年 Cyrix 的處理器產品,其管線結構均換
湯不換藥。
超純量(Superscalar)部分,提供兩條功能相對完整的管線:Intel Pentium 的 U/V 管
線須完美配對指令,如限定兩個簡單的單時脈週期整數運算指令(有少數例外,在此不論
),才能發揮 100% 的效率,因為只有 U 管線能執行全部指令,V 管線僅能處理較簡單
者。所以像一個整數和一點浮點、或兩個浮點指令配對,在 Pentium 都不被允許同時執
行。
但 6×86 即使也有類似限制,如 X/Y 管線僅前者可執行分支指令與浮點運算,但遠較
Pentium 彈性,且可在指令解碼階段,交換彼此負責的工作,所以在 Pentium 需要一個
一個處理的指令流,在 6×86 就更有機會同時送作堆一起執行。
利於時脈發展空間的深度管線:七階的超管線(Superpipeline)分離了「從記憶體載入
資料」、「進行有效位址計算」與「回存資料到記憶體」3 個動作,有效減少了存取快取
記憶體的延遲,足以媲美同期的 Alpha 21164(七階)與 MIPS R10000(八階),也意謂
著比較高的時脈延展潛力,雖然受制於外包代工的製程(SGS Thomson與IBM),在與
Intel 競爭的過程中,完全顯現不出其價值。
因管線深度加長,勢必加強分支預測效率,與減輕預測錯誤的代價(Misprediction
Penalty),這部份 6×86 大致近似 Pentium,但增加了存放函數返回位址緩衝區(
Return Stack Buffer),而配置指令預先擷取緩衝區,也縮短了發生預測錯誤時,回復
指令管線運行需要的時脈週期數。
暫存器重新更名(Register Renaming)與記憶體旁路(Memory Bypassing):這些與非
循序指令執行相關的功能,堪稱 M1 微架構的重頭戲。
講的單純一點,透過配置數量比指令集定義的邏輯暫存器、更多的實體暫存器為緩衝(6
×86 用 32 個實體暫存器,「更名」成 8 個 x86 指令集定義的通用暫存器),可減輕
因發生不同指令存取相同暫存器,導致「撞衫」但並非真正的資料相依時,指令管線的停
滯時間。而發生快取誤失(Cache Miss)時,指令管線亦可繼續執行後繼指令。
如發生「真正的」暫存器資料相依,如第一個指令要從記憶體載入至某暫存器,第二個指
令再對此暫存器進行加法運算,6×86 可同時執行這兩個指令,並將第一個指令在 AC2
階段的記憶體資料,「Bypass」到後面指令的 EX 執行階段。這情況發生在 Pentium 的
話,就只能慢慢等了。
但這 3 種凌駕 Pentium 的特色,都被 1995 年底發表、採取解耦式超純量(Decoupled
Superscalr)的 Pentium Pro 統統比下去了,後來 P6 微架構降尊紆貴為進入桌機市場
的 Pentium II,更是 20 世紀末期 Intel 諸多競爭者的惡夢。
況且,除了製程以外,6×86 也不是沒有弱點。
指令集相容性僅有 486 水準:Cyrix 在被國家半導體購併前,並未獲得 Intel 技術授權
,完全藉由逆向工程獨立開發 x86 相容處理器,所以自然而然不是百分百相容 Intel 產
品,像 Intel 在 Pentium 新增的指令,如非常知名的 CPUID,在 6×86 就付之闕如(
原本 1994 年晶片 Tape Out 時,Cyrix 宣稱會支援,但後來預設關掉)。
Intel 在 Pentium 使用者手冊,故意保持空白的「附錄 H」中,描述的眾多新指令與新
功能,如用來計算指令週期數的 RDTSC,Cyrix 也以「避免製造法律紛爭」為由,統統不
碰,若不幸碰到了,就視為非法指令,至於所謂「Undocumented」的非公開指令,更連提
都不用提了。無法完全相容的嚴重後果,就是軟體公司需要特別為 6×86 撰寫補丁程式
,以確保相容性。
同場加映 AMD 當時的處境:拚死拚活逆向工程,也要在 K5 擠出附錄 H 的相容性,成果
在此不論。
這也是 x86 處理器發展史一個潛在地雷,不像其他 RISC 家族都有明確的版本演進規範
,x86 指令集一直缺乏公定版本,很多廠商自己光明正大搞自己的特殊指令(包括 Cyrix
,後文會提到),而 Intel 基於「既得利益」,壓根不打算做這功德無量的好事。
支援多處理器環境受限:初代 Pentium 可透過外掛單價 28 美元的 82498DX 先進可程式
化中斷控制器(APIC)實作雙處理器環境,而 P54C 時期開始,更直接將其內建於處理器
,成為無須外掛系統連結晶片(Glueless)的原生方案,但 6×86 並未整合 APIC,而是
採用自家 SLiC,也只有 VIA Apollo 晶片組提供支援。
其實 x86 並不是到 Pentium 才有多處理器系統。由 17 位因 iAPX432 計畫失敗而離職
的 Intel 員工所創立,堪稱對稱式多處理器架構(SMP)技術先驅,後來被 IBM 購併的
Sequent Computer Systems,就曾先後推出一系列採用 386 與 486 的多處理器產品線
。這些象徵「x86 團結就是力量」的產品,全都仰賴特製系統晶片組與特化過的作業系統
,才能搞定正確路由(route)系統中斷至各處理器的宿疾,且因專屬規格所費不貲,
P54C 時代的 Pentium 才就此劃下句點。
但雙 Pentium 處理器環境,因低落的快取記憶體與系統匯流排效能而缺乏競爭力,這缺
陷到了 Pentium Pro 才釜底抽薪(這也強化了用 Pentium Pro 跑 Windows NT 的誘因)
。即使 Cyrix「硬上」,慘況只會跟 Pentium 如出一轍。
浮點運算效能不彰:6×86 並沒有像 Pentium 一樣擁有管線化的浮點運算單元,浮點運
算效能輸了 Intel 一大截,這對那時方興未艾的電玩遊戲需求是一大打擊,這也是一般
電腦玩家對當時 Intel 競爭者的刻板負面印象。而軟體開發者優先為 Pentium 最佳化,
加重了 Cyrix 的劣勢,並難以提高產品的銷售單價,對製造成本已偏高的 Cyrix 更是雪
上加霜。
https://i.imgur.com/TTd58Un.png
較落後的共享式第一階快取記憶體:6×86 並非採取比較流行的指令/資料分離式第一階
快取,而是兩者共用一塊 16kB 雙埠的共享式設計。跟 Intel Pentium 指令/資料個別
8kB 相比,雖然單一 16kB 理應可提高命中率,但也容易發生存取指令與資料時「打架
」的問題。為此,Cyrix 另外擺放了一塊「L0」的 256 Byte 指令快取,做為補強之用。
即使沒有任何證據足以證明,Cyrix 的設計真的比較差,但從事後「M3」(Jalapeno)企
圖重回「正道」來看,我們有充分的理由相信,這只是基於成本考量而做的不得已決定。
https://i.imgur.com/Wp7R9Yv.png
後面我們會陸續介紹研發資源極度有限的 Cyrix,其 PR 值(P-Rating)的基準由來,如
何勉力改造先天不足的 M1 微架構,持之以恆的推出新產品,以及改弦易轍為整合繪圖核
心單晶片方案先驅者的故事。
作者: a32165498791 (sio)   2017-10-25 20:36:00
沒聽過,這是一篇考古文啊ouo
作者: huangshinwen (.....)   2017-10-26 09:57:00
時脈跟型號脫勾記得也是cyrix開始的

Links booklink

Contact Us: admin [ a t ] ucptt.com