MIPS处理器
定义
MIPS处理器指采用MIPS指令集架构的微处理器及其衍生的系统芯片。MIPS是英文Microprocessor without Interlocked Pipelined Stages的缩写,意为「无互锁流水线阶段的微处理器」,其命名直接对应它最初的设计取向:通过编译器在编译阶段安排指令、填充流水线空隙,以减少硬件层面的互锁与等待[2][3]。
从架构谱系看,MIPS属于精简指令集(RISC)阵营。它最初是32位架构,寄存器与数据通路均为32位宽,后来的版本扩展到64位;架构标准后来被整理为面向嵌入式的MIPS32与面向高端的MIPS64两个系列,并按修订版本编号[1]。
原理
MIPS的基本设计思路是只保留常用而简单的指令,把复杂性交给编译器处理。经典的五级流水线依次为取指、译码与读寄存器、执行、访存、写回,理想状况下每个时钟周期完成一条指令,即每指令周期数 $CPI \approx 1$[4][5]。
指令编码固定为32位,分为寄存器型、立即数型、跳转型三种格式,源寄存器字段位置统一,因此取指与译码可以在一个周期内完成[6][4]。它采用载入/存储模型,只有载入和存储指令访问存储器,算术与逻辑运算只在寄存器之间进行,并普遍采用三操作数形式[6][2]。
早期的MIPS-I设有32个32位通用寄存器,其中0号寄存器恒为零值,另有浮点寄存器组;存储器按字节编址,连续字地址相差4[7][8]。
为缓解流水线中的控制相关与数据相关,MIPS-I引入了延迟槽机制:分支指令之后的那条指令不论分支是否跳转都会先被执行,载入指令之后的一条指令则不得立即使用刚读入的数据。延迟槽通常由汇编器调度填充,实在无法安排时填入空操作指令[8][9]。编译器对单个分支延迟槽的有效填充率约为50%[10]。
发展历程
MIPS的源头是1981年斯坦福大学启动的RISC研究项目。当时约翰·轩尼诗(John Hennessy)组织研究团队,尝试用简化的指令集换取更高的时钟频率与执行速度,1982年发表的相关论文记录了这套硬件与软件分工的方案[11][12]。1984年,轩尼诗等人创办MIPS计算机系统公司(MIPS Computer Systems),把研究成果推向市场[13]。
1985年,首款产品R2000问世,它在片上以独立单元实现多周期乘除法,并为此增加了带回读互锁的指令;1988年的R3000加入了更大的一级缓存、内存管理单元与缓存一致性支持,成为首款取得大规模商业成功的MIPS产品,累计产量超过一百万颗[1]。R3000A的一个衍生型号被索尼用作PlayStation游戏机的核心处理器,东芝的R3900则是早期Windows CE掌上电脑采用的首批系统芯片之一[1]。
1991年发布的R4000把指令集扩展到完整64位,并把浮点单元集成进主芯片,借助深流水线把主频推到100 MHz;1993年的R4400扩大了缓存容量并改善了64位运算的可靠性[1]。1992年,硅谷图形公司(SGI)收购MIPS计算机公司,R系列处理器随后主要用于SGI的高性能工作站与服务器[2]。
1998年MIPS脱离SGI重新独立,1999年发布MIPS32与MIPS64两套架构标准,整合原有指令集并转向以技术授权为主的经营模式,重点服务嵌入式市场[2][14]。此后公司所有权多次变更:2012年前后相关资产被Imagination Technologies取得,2017年又被剥离出售,2018年被人工智能芯片初创企业Wave Computing收购[15]。
重组后的MIPS不再以同名架构为主要研发方向,转而推出基于RISC-V开放指令集的产品线[16]。2025年7月,晶圆代工厂格芯(GlobalFoundries)宣布收购MIPS,交易金额未公布,MIPS作为独立业务继续运营[16][17]。
应用
MIPS处理器最早的规模应用在高性能计算一侧。R系列芯片被用于构建SGI的工作站、服务器与超级计算机系统;按20世纪90年代末的估计,基于MIPS架构的处理器约占当时RISC处理器产量的三分之一[2][18]。
在消费电子与网络设备领域,MIPS的足迹包括索尼PlayStation、PlayStation 2与PSP,任天堂64,以及思科的路由器等产品[18][5]。进入21世纪后,MIPS内核在数字电视、机顶盒、网络通信、激光打印机、掌上电脑与汽车电子中获得较多采用,其多线程内核被用于ADAS视觉方案中[14][19]。
MIPS的可授权模式也影响了其他地区的处理器研发。中国科学院的龙芯项目早期采用MIPS架构并逐步取得授权,2021年龙芯中科推出自主的LoongArch指令集后与之分道[5]。俄罗斯的Baikal T1处理器同样基于MIPS架构,用于其国产计算系统[18]。
局限
MIPS早期版本针对单发射、顺序执行的五级流水线做了较多优化,当处理器转向超标量与更深流水线时,这种设计取向反而成为负担[20]。分支延迟槽在流水线加深后需要不止一个槽位才能填满,编译器填不满时只能插入空操作,导致代码体积膨胀;为保持向后兼容,这一机制长期未能移除[20][7]。
整数与浮点寄存器文件彼此独立,两者之间传递数据需要额外的搬移指令,某些情况下还要显式插入延迟,增加了代码调度的复杂度;处理非对齐载入与存储的特殊指令则占用了较多操作码空间,并使实现复杂化[20]。
在产业层面,MIPS在移动与便携设备市场未能取得主导地位,随着ARM生态在嵌入式领域扩张,其份额受到挤压[17][14]。多线程内核虽然硬件利用率较高,但本质仍是单核心,单个线程负载较高时其他线程的执行时间可能被压缩,极端情况下性能不及原生多核方案[14]。此外,MIPS长期以专有授权方式运作,在开源指令集兴起后处于相对被动的地位,其主体最终转向RISC-V。
参见
参考资料
- 维基百科,自由的百科全书 - MIPS架构处理器[编辑] [引用日期2026-10-29]
- MIPS_MIPS知识大汇集 [引用日期2026-10-29]
- ACM: Digital Library: Communications of the ACM [引用日期2026-10-29]
- 11/4/10 [引用日期2026-10-29]
- MIPS架构_百度百科 [引用日期2026-10-29]
- 04-Isa(PDF) [引用日期2026-10-29]
- CS152 [引用日期2026-10-29]
- api [引用日期2026-10-29]
- Example: MIPS Assembly Code [引用日期2026-10-29]
- lec02-isareview(PDF) [引用日期2026-10-29]
- John Hennessy - Main content start [引用日期2026-10-29]
- Byte Addressing: From Laboratory to Practice [引用日期2026-10-29]
- John L. Hennessy [引用日期2026-10-29]
- RISC家族之MIPS处理器 [引用日期2026-10-29]
- 打官司输给龙芯!MIPS第五次卖掉自己 这次接盘的是GlobalFoundries [引用日期2026-10-29]
- 格芯收购MIPS:RISC-V技术路线的新变量 - 当前位置: OFweek 电子工程网 > 其它 > 正文 [引用日期2026-10-29]
- globalfoundries-eyes-risc-v-opportunities-mips-acquisition [引用日期2026-10-29]
- Architecture MIPS [引用日期2026-10-29]
- 对话Imagination:畅谈MIPS架构处理器的未来 [引用日期2026-10-29]
- 30年来, 逐步增加到约400条指令 [引用日期2026-10-29]