MIPS架构(英语:MIPS architecture,为Microprocessor without Interlocked Pipeline Stages的缩写,亦为Millions of Instructions Per Second的头字语),是一种采取精简指令集(RISC)的处理器架构,1981年出现,由MIPS科技公司开发并授权,广泛被使用在许多电子产品、网络设备、个人娱乐设备与商业设备上。最早的MIPS架构是32位,最新的版本已经变成64位。
在1981年,斯坦福大学教授约翰·轩尼诗领导他的团队,实现出第一个MIPS架构的处理器。他们原始的概令是透过指令管线化来增加CPU运算的速度。
1984年,约翰·轩尼诗教授离开斯坦福大学,创立MIPS科技公司。于1985年,设计出R2000芯片,1988年,将其改进为R3000芯片。
为了减少各种指令后流水线的阻塞,MIPS I引入了延迟槽机制,在分支与加载指令后都有一条指令的延迟槽。分支指令延迟槽中的内容会先于分支指令被提交。而加载指令的延迟槽中则不允许使用刚刚加载的数据。一般情况下延迟槽的安排会由汇编器完成,但在一些情况下程序员仍然需要关注他的存在。对于实在无法安排指令的延迟槽可以直接填入"NOP"。
MIPS包括32个寄存器和2^30个存储器字,详见下表:
在MIPS架构中,指令被分为三种类型:R型、I型和J型。三种类型的指令的最高6位均为6位的opcode码。从25位往下,
三种类型的指令图示如下:
MIPS I 具有访存8-bit字节,16-bit半字,32-bit字的能力, 并且只支持“基地址+偏移”一种寻址模式。 由于MIPS I是一种32位架构,少于32-bit的加载指令在目标寄存器中都会对高位进行符号扩展或全零扩展到32-bit。带有 "无符号" 后缀的指令会被进行全零扩展,其他的指令会进行符号扩展。 加载指令会从一个通用寄存器中获取基地址 (rs) 并将从操作地址读取的结果写入一个通用寄存器 (rt). 存储指令则会从一个通用寄存器获取基地址(rs),将另一个通用寄存器(rt)中的内容写入相应操作地址。所有的访存指令都会将基地址加上指令中的有符号16-bit立即数immediate偏移以获得最终操作地址。 MIPS I要求所有的访存指令与操作单位对齐,也就是目标地址必须是所访问数据字节数的整数倍。为了支持高效的非对其访存,MIPS提供了带左/右后缀的访存指令。所有的加载指令后面带有一个延迟槽,延迟槽内的指令不得使用刚刚加载的指令。