時代背景:歷經多年延宕,Cyrix終於在1996年推出「第六世代」x86處理器6x86 M1,但前有Intel即將推出的Pentium MMX,後有Intel Pentium II和AMD K6,製程技術與x86軟體相容性均處於落後態勢的Cyrix,需要盡速打造出足以抗衡的新核心。
在二十世紀末期,曾被外界一度看好是Intel最強競爭者的Cyrix,在推出6x86 M1之後,進一步研發「企圖以最少成本換取兩倍效能」的6x86MX M2,以迎擊Intel Pentium MMX、Pentium II與即將到來的AMD K6。
雖然M2帶來了4倍容量的第一階快取記憶體、支援MMX與自定義的12個EMMI (Extendted Multi-Media Instructions) 指令、改善x86指令集相容性 (主要是Intel在Pentium新增的部份)、強化動態分支預測、並改進記憶體位址轉換效率。但整體而言,M2實在有愧其「第二世代產品」的編號,可能連「1.5代」都稱不太上,因為M2的指令管線依舊「不動如山」,沒變長也沒變短,非循序指令引擎也聞風不動。
關於浮點運算這個Intel競爭者都有的大弱點,Cyrix稍微縮減了部份浮點指令的延遲,但杯水車薪,依舊沒改變被Intel壓著打的窘境。坦白講,M2的改進幅度並沒有比加大第一階快取、引進和Pentium Pro相同的分支預測技術、增加指令管線深度的Intel Pentium MMX高明到哪裡去。
也因此,Cyrix同步進行了2個新型微架構的發展,具有管線化浮點運算單元、再度自行擴充MMX指令集的「真」M2「Cayenne」,與全新打造類似 P6解耦式超純量 (Decoupled Superscalar) 的M3「Jalapeno」,兩者並「附贈」了更具野心的單晶片系統解決方案。
Cayenne導入管線化的浮點運算與MMX執行單元、支援AMD 3DNow!指令與15個專屬的MMXFP指令 (一個MMX暫存器存放兩個32位元單精確度浮點數),並新增MPEG-1與H.323影像壓縮所需要的動態估測 (Motion Estimation) 指令。
各位科科可從這張圖瞬間了解MMXFP到底是幹了什麼好事。MMXFP以犧牲掉部份IEEE 754浮點數相容性規範為代價,提供相較於Pentium II效率驚人的倒數與開根號倒數指令。MMXFP指令亦可指定不同MMX暫存器中的一半元素,進行「聚集 (Gather)」與「分散 (Scatter)」運算。你的眼睛絕對沒看錯,遲至AVX-512才承繼向量電腦的特色,在超過20年前就出現在x86處理器。
硬科技:淺談x86的SIMD指令擴張史(下):AVX到AVX-512
但當1999年6月「最可怕的競爭者」AMD K7堂堂登場時,Pentium平台的Socket 7 (或應該稱之為Super Socket 7) 早已沒有市場,M-II正統繼承人「Jedi (Socket 7的Cayenne)」就這樣胎死腹中。Cyrix又歷經被併購至國家半導體後、又被出售給VIA的動盪,Cayenne遲至2000年初,才以VIA Cyrix III「Joshua (約書亞)」之名降臨,無緣與最早設定的對手Intel Pentium II家族正面較量,並且Cyrix在VIA內部,迅速被追求「簡單、迅速、便宜」的Centaur體系取而代之,獨特的MMXFP指令,也從此消逝於眾人的記憶中。
硬科技: 「簡報王」和他們的產地 被VIA併購的Centaur篇
3 則回應