MIPS构架:曾经是英特尔的“眼中钉”
https://www.eefocus.com/mcu-dsp/363953
我们都知道目前主流构架有三种:X86,ARM 和 MIPS,X86 在 PC 时代称霸江湖,ARM 赶上了移动通信的好时机,在手持端风风光光,而 MIPS 似乎就有些尴尬,还未美丽就已老去。
ARM 的合作伙伴们基于 ARM 的设计向移动和嵌入式市场的出货量已经达 500 亿片。对于安卓系统,ARM 已然成为标准,这对 Intel 和 MIPS 而言是个问题。尽管安卓的主要编程语言是 Java,开发者也可以使用现有的代码(比如 C 或者 C++)去开发应用。这些固定平台的应用通常都编译成 ARM 处理器的程序,不全都会编译成 Intel 或者 MIPS 处理器的程序。了解决这个问题,Intel 和 MIPS 要使用特殊的转换软件把 ARM 的指令转换成他们处理器使用的指令,这当然是会降低性能的。
本期《处理器史话》我们就来讲讲 MIPS 的历史,让我们看看这个曾经的主流构架有着如何风光的发展史。
MIPS 是世界上很流行的一种 RISC 处理器。MIPS(Microprocessor without interlocked piped stages),意思是“无内部互锁流水级的微处理器”,其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在 80 年代初期由斯坦福(Stanford)大学 Hennessy 教授领导的研究小组研制出来的,是一种简洁、优化、具有高度扩展性的 RISC 架构。它的基本特点是:包含大量的寄存器、指令数和字符、可视的管道延时时隙,这些特性使 MIPS 架构能够提供最高的每平方毫米性能和当今 SoC 设计中最低的能耗。
MIPS 架构是一种采取 RISC 的处理器架构。1981 年出现,由 MIPS 科技公司 开发并授权,广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。最早的 MIPS 架构是 32 位,最新的版本已经变成 64 位。
MIPS 公司的 R 系列就是在此基础上开发的 RISC 工业产品的微处理器,这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。
每款处理器构架的诞生总是和它的创造者有着分不开的关系,因此在介绍 MIPS 架构之前,我们先来认识一下它的缔造者:John Hennessy。
现任斯坦福大学校长——约翰·亨尼斯
约翰·亨尼斯(John Hennessy),美国加州大学伯克利分校计算机系教授和斯坦福大学计算机系教授,是现今计算机设计领域非常受人尊敬的学者和开创者,现任斯坦福大学校长。2015 年 6 月,斯坦福大学发表声明,这位校长计划于 2016 年 9 月份退休,据说离任后将全身心投入教学工作。
作为一名计算机科学家,John Hennessy 同时还是谷歌和思科公司的董事会成员,在美国硅谷一直拥有巨大影响力。他精通硬件、软件,是具有传奇色彩的 MIPS 编译器和几代 MIPS 硬件产品的技术上的领导者。
下面的内容将展示这位传奇人物的传奇经历:
- 美国国家工程研究院和国家科学研究院成员;
- 于 Villanova 大学获得电子工程学士,在纽约州立大学获得计算机科学硕士和博士学位 ;
- 1977 年,受聘于斯坦福大学;
- 1981 年,组织研究人员致力于研究 RISC,并被称为“RISC 之父”;
- 1984 年,合作研制出 MIPS 计算机系统;
- 1999 年,任主管学术和财务的副校长,致力于生物科学和生物工程方面的跨学科建设,并努力提高教职员工的工资待遇;
- 2000 年,任斯坦福大学校长。
神人!牛人!
崇拜完毕,请走进 MIPS 架构及其处理器的世界。
1. 关于 MIPS
MIPS 是星球上第一个 RISC 研究项目的结晶,由 John Hennessy 领导的小组在 1981 年就开始设计。
从技术甚或学术角度来看,MIPS 大概是最干净和有效的 RISC 架构体系了。因此,全世界学习处理器架构设计的人,无不以 MIPS 作为学习和研究目标的。至今在处理器本身的许多技术路线上,也要领先 ARM 两年以上,比如多处理(多线程和多核)、64 位等等。不过,在商业上,ARM 架构比 MIPS 成功许多,以年化的收入来衡量的话,ARM 收入比 MIPS 大约多 4 倍,以出货片数计的话,差距更大(大至约 9~10 倍)。关于 ARM 架构及其产品,在以后的章节中会详细讲解并与其对比。
MIPS 处理器是八十年代中期 RISC CPU 设计的一大热点。MIPS 是卖的最好的 RISC CPU,可以从任何地方,如 Sony,Nintendo 的游戏机,Cisco 的路由器和 SGI 超级计算机,看见 MIPS 产品在销售。和英特尔相比,MIPS 的授权费用比较低,因此受到除英特尔外的大多数芯片厂商亲睐。
早期 MIPS 架构处理器 R2000
MIPS 作为一个开放体系优点很多,它更偏重于服务器、高端点产品,接下来,我们走进 MIPS 的世界。
2.MIPS32 位架构
MIPS32 架构刷新了 32 位嵌入式处理器的性能标准。
它是 MIPS 科技公司下一代高性能 MIPS-Based 处理器 SoC 发展蓝图的基础,并向上兼容 MIPS64 64 位架构。
MIPS 架构拥有强大的指令集、从 32 位到 64 位的可扩展性、广泛的软件开发工具以及众多 MIPS 科技公司授权厂商的支持,是领先的嵌入式架构。MIPS32 架构是以前的 MIPS I™ 和 MIPS II™指令集架构(ISA)的扩展集,整合了专门用于嵌入式应用的功能强大的新指令,以及以往只在 64 位 R4000 和 R5000 MIPS 处理器中能见到的已经验证的存储器管理和特权模式控制机制。通过整合强大的新功能、标准化特权模式指令以及支持前代 ISA,MIPS32 架构为未来所有基于 32 位 MIPS 的开发提供了一个坚实的高性能基础。
MIPS32 架构基于一种固定长度的定期编码指令集,并采用导入 / 存储(load/store)数据模型。经改进,这种架构可支持高级语言的优化执行。其算术和逻辑运算采用三个操作数的形式,允许编译器优化复杂的表达式。此外,它还带有 32 个通用寄存器,让编译器能够通过保持对寄存器内数据的频繁存取进一步优化代码的生成性能。
MIPS 常用指令集有 31 条,下面请出镜率最高的三位登场:
助记符 | 示例 | 示例含义 | 操作及解释 |
AND | AND $1, $2, $3 | $1=$2 & $3 | 与运算,两个寄存器中的内容相与 |
OR | OR $1, $2, $3 | $1=$2 | $3 | 或运算,两个寄存器中的内容相或 |
XOR | XOR $1, $2, $3 | $1=$2 ^ $3 | 异或运算,两个寄存器中的内容相异或 |
没有看错,这就是 MIPS 指令集!简单的程度简直是“毫无道理”可言!看来,只要有些基础的学生都可以上手,是不是有同感呢?
不管元芳怎么看,反正我是有同感的。
估计看到这里,大家一定会理解,为什么 MIPS 如此受欢迎了吧?
感叹完毕,下文接上。
MIPS32 架构从流行的 R4000/R5000 类 64 位处理器衍生出特权模式异常处理和存储器管理功能。它采用一组寄存器来反映缓存器、MMU、TLB 及各个内核中实现的其它特权功能的配置。通过对特权模式和存储器管理进行标准化,并经由配置寄存器提供信息,MIPS32 架构能够使实时操作系统、其它开发工具和应用代码同时被执行,并在 MIPS32 和 MIPS64 处理器系列的各个产品之间复用。
它的高性能缓存器及存储器管理方案的灵活性,仍继续成为 MIPS 架构的一大优势。MIPS32 架构利用定义良好的缓存控制选项进一步扩展了这种优势:
- 指令和数据缓存器的大小可以从 256byte 到 4Mbyte。数据缓存可采用回写或直写策略,无缓存也是可选配置。存储器管理机制可以采用 TLB 或块地址转换(BAT)策略 。
- 由于增加了密集型数据处理、数据流和断言操作(predicated operations) ,可满足嵌入式市场不断增长的计算需求。
- 条件数据移动(Conditional data move)和数据缓存预取(prefetch)指令被引入,以期提高通信及多媒体应用的数据吞吐量。固定浮点 DSP 型指令可进一步增强多媒体处理能力。
这些新指令,包括乘法、乘加、乘减和“前导计数(count leading)0s/1s”,在处理音频、视频和多媒体等数据流时,无需在系统中增加额外的 DSP 硬件即可提供更高的性能。功能强大的浮点指令可加快某些任务的执行速度,比如一些 DSP 算法的处理、图形操作的实时计算。浮点操作可选择软件仿真。最后,为简化系统集成任务,MIPS32 标准定义 EJTAG(增强型 JTAG)选项功能作为非入侵式、片上实时调试系统。