All About Circuits|卢克·詹姆斯(Luke James)|2026年11月6日
四十年前,1985年的圣诞节前后,约翰·穆苏里斯(John Moussouris)带着一块电路板,从加利福尼亚送到马萨诸塞的 Prime Computer。Prime 事先谈好:只要他那家成立约一年的创业公司 MIPS Computer Systems 能在节前交出芯片,并在规定主频下跑通真实程序,就预付 150 万美元。2011年,穆苏里斯在计算机历史博物馆的座谈上回忆过交货时的场面。接待他的高管鼻子通红,脸色难看。签这笔预付款的时候,对方认定 MIPS 交不出芯片。他带到现场的,是一颗已经能工作的芯片。
约翰·穆苏里斯(John Moussouris)博士。图片由牛津大学圣十字学院提供
这颗芯片就是 R2000。它是 32 位处理器,采用 2 µm CMOS,管芯面积 80 mm²,集成 11 万个晶体管,也是约翰·亨尼西(John Hennessy)1981年起在斯坦福大学所做研究的商用版本。计算机体系结构课上,学生后来一直在画的五级流水线,就是 R2000 这一套。
研究是从一门课开始的。1981年春天,亨尼西在斯坦福讲授超大规模集成电路设计,MIPS 是这门课上的项目,全称是“没有互锁流水级的微处理器”(Microprocessor Without Interlocked Pipe Stages)。一般的流水线会用硬件检查前后两条指令:后一条要用的结果如果还没有产生,流水线就先停住,等结果出来再继续。斯坦福的芯片没有这套硬件。课题组在 1982年的论文里写明,这台机器“不提供流水线互锁硬件,这项功能必须由软件提供”。
MIPS R2000 中央处理器与浮点部件框图。图片由帝国理工学院提供
软件要补上的,是指令的先后次序。小组写了一道名为 reorganizer 的编译遍。代码生成之后,只要某条指令用到前一条的结果,它就把一条不相干的指令调到中间;调不到,就插入一条空操作。分支也按这个办法处理。芯片判明分支是否跳转时,下一条指令已经取进来了,设计就让这条指令照常执行,有用的内容交给编译器去填。流水线如果还是六级,分支后面就要安排两条这样的指令。1981年秋天改成五级以后,需要安排的只剩一条。
课堂上那颗芯片还很小,采用 nMOS,晶体管大约 2.5 万个,寄存器 16 个,目标主频 4 MHz。1984年初,能工作的 3 µm 样片从美国国防高级研究计划局(DARPA)的 MOSIS 服务返回,2月20日跑通了第一个完整程序,八皇后。样片能跑之后,亨尼西拿去向风险投资机构讲解,用的是手绘投影片。他后来说,这些投影片“里面没有市场分析”。就在这年夏天,亨尼西、当时正从 IBM 休假的穆苏里斯,以及摩托罗拉 68000 的架构师斯基普·斯特里特(Skip Stritter),注册成立了 MIPS Computer Systems。当年 10月,Mayfield 基金投入 150 万美元。
到了能卖的 R2000,版图换过一回。穆苏里斯说,它和斯坦福那一版“没有一块矩形相同”。改动大多是为了把课堂项目做成能跑 Unix 的芯片:工艺从 nMOS 换成 CMOS,寄存器堆扩大一倍,达到 32 个,寻址也从按字改为按字节。
存储管理是商用芯片才放进来的。斯坦福 1984年的报告把它留在片外,因为 4 µm 的 nMOS 放不下。工艺收到 2 µm 以后,R2000 放进一个 64 项、全相联的转译后备缓冲器(TLB),用来映射 4 KB 页面。缓存和浮点仍然放不进这 11 万个晶体管,指令缓存和数据缓存就改用片外静态存储器(SRAM),各最多 64 KB。浮点运算交给协处理器 R2010,R2020 则把最多 4 笔尚未完成的 DRAM 写操作排进队列。R2000 以 144 引脚针栅阵列(PGA)封装出货,主频分为 8.3 MHz、12.5 MHz 和 15 MHz 三档。
流水线没有跟着重做,一条指令仍是五级:取指令、读寄存器、算术逻辑单元(ALU)运算、访存、写回,每个周期进入一条新指令。编译器要管的,还是原先那两处。紧接在取数后面的指令,不能立刻使用这次取数的结果,中间要放一条无关指令,或者一条空操作。分支后面的那条指令,无论分支是否跳转,都会执行。名字则没有字面上看起来那么绝对。早期 MIPS 工程师约翰·梅希(John Mashey)指出,乘除法结果寄存器和浮点部件上其实留着互锁。
MIPS 自己没有晶圆厂,设计先送到 VLSI Technology 去加工。圣何塞的初创公司塞拉半导体(Sierra Semiconductor)也要求用这套掩模来做,并提出可以免费,只有成品率达到 VLSI Technology 的水平才收费。MIPS 在 1985年感恩节前流片。17天后,塞拉交出的晶圆上已经有完全能工作的器件。穆苏里斯说,接下来的一年里,没有别人做出这颗芯片。第二来源要到 1987年12月才出现,设计授权给了集成器件技术公司(Integrated Device Technology)、LSI Logic 和 Performance Semiconductor。
能工作的芯片,接着进了工作站。1987年,卡内基梅隆大学软件工程研究所测过基于 R2000 的 MIPS M/500,大约每秒 800 万条指令,大致是 VAX-11/780 的五倍。硅图(Silicon Graphics)起先告诉穆苏里斯,他们打算用仙童的 Clipper。两家工程师把方案对了一天,硅图改了决定,同年把一块主频 8 MHz 的 R2000 板装进 IRIS 4D/60。数字设备公司(Digital Equipment)晚一步:1988年7月取消了内部的 PRISM RISC 计划,1989年1月才出货自己的第一台 RISC 机器 DECstation 3100。这台机器采用主频 16.67 MHz 的 R2000,售价 11900 美元。
工作站卖出去之后,这套流水线又进了课本。1990年,亨尼西和大卫·帕特森(David Patterson)出版《计算机体系结构:量化研究方法》(Computer Architecture: A Quantitative Approach)。用亨尼西的话说,当时两人“躲在 DEC WRL”。WRL 是 DEC 西部研究实验室。给本科生用的《计算机组成与设计》(Computer Organization and Design),直接讲授 R2000 和 R3000 的指令集,使用 SPIM 模拟器。
亨尼西说,1990年那本书“成了标准教材”。两人在 2017年共同获得图灵奖。延迟槽没有在指令集里留那么久。梅希把取数延迟槽称作一个错误,到了 MIPS II,这项要求就取消了。公司后来也换过几次归属:1992年归入硅图,其后到了 Imagination Technologies,2021年转向 RISC-V,2025年8月被格芯(GlobalFoundries)收购。
来源:
https://www.allaboutcircuits.com/news/the-mips-r2000-the-stanford-risc-that-became-the-textbook-pipeline/