[闲聊] 时代的眼泪系列: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