64位MIPS的起源,回顾及展望
早在20世纪 80 年代中期,摩尔定律就已经为集成电路的设计人员带来了严峻的挑战。如何使用所有这些复杂的晶体管?对于新型 RISC 处理器的设计人员来说,处理器要求的晶体管体积更小,数量更多。因此,在 1988 年开始定义 MIPS R2/3000 的后续产品时,我们在继续采用 RISC 原理的同时,也在寻求可以使用更多晶体管的方法。当时存在的一些问题和发展趋势,不仅使我们的工作迷失了方向,而且也使 R4000 处理器陷入困境。
第一个问题或者说是机遇(视您的观点而定)是在试图实现较低的每指令周期(CPI)时认识到大量高速缓存的重要性,因为对 CPI 降级起最大作用的是由高速缓存故障所引起的处理器失速。可接受的最低高速缓存大小约8 Kbytes,分别用于指令和数据,表明这些高速缓存在 R2/3000 系列处理器中均是外部的。然而,CPI 当然不会是整个决定因素。总体计算吞吐量是 IPC(1/CPI)和频率的乘积,而在 R2/3000 家族中,处理器频率受限于这些相同外部高速缓存的访问速度。将内部高速缓存和外部高速缓存的最高频率和最大高速缓存大小的频率与 IPC 乘积绘制成图,使我们能够迅速评估相关的折衷方法。从图上来看,由于 CPI 改进在 32 Kbyte 之上趋于平缓,但是性能改进因频率增加而继续呈线性发展,因而它非常有利于集成高速缓存。在采用 1.0 微米技术的 R4000 中,我们最后以 8 KByte 指令与数据高速缓存而告终。
一旦集成了高速缓存,就有机会通过将高速缓存访问管道化来进一步提高频率。甚至有可能在必要时,在地址解码和阵列存取之间放置管道注册器。对于 R4000,2 周期高速缓存访问可以产生一个 8 阶管道,而 R2/3000 却只能产生 5 阶单周期高速缓存访问。通过 RISC 架构开创先河,使用更出色的管道粒度的技术称为超级流水线,后来在 x86 架构实施中发挥到极至。虽然这不像高速缓存的使用那么明显,但是随着相对于额外长度近似线性的增长,加深管道同样也要使用更多的晶体管。这种线性增长适用于控制逻辑和数据路径逻辑。
另一个趋势是,通过广泛采用 IEEE754 浮点标准及其在 CAD 应用、打印以及成像市场中的普遍使用,为硬件浮点的集成提供了更为强大的推动力。独立支持除法和方根、完全管道化的浮点乘积单位复杂性约等于整数单位的复杂性。现在对于浮点来说,主导数据类型是双精度,或为了实现快速实施而需要 64 位宽数据路径的 64 位浮点。如果要提供带有数据的 64 位浮点单位,则需要数据高速缓存的宽度也是 64 位。因此,我们拥有 64 位浮点单位、64 位数据高速缓存等等……
最后,根据操作系统专家观察,地址位正以一个速率逐渐被消耗,此速率可以在 R4000 的周期内获得所需的 64 位寻址 —— 行业已经迫不及待地“消化”了 4、8 和 16 位,并且正忙于“咀嚼”32位。虽然这对 R4000 自身来说并不是一个极为乐观的前景,但是 64 位 MMU 架构和指令扩展了当今幸存 R4000 的开发范围,并且成为所有 64 位 MIPS 实施的基础。拥有 64 位寻址并不意味着拥有 64 位整数单位,但是将分段用在 x86 架构中的想法对于 RISC 的支持者来说是十分可怕的,对于编译人员和操作系统技术人员来说尤为如此。
如今,64 位寻址变得越来越普遍,英特尔和 AMD 最近推出计算 64 位处理器便是一个有力的见证。而且,将 64 位用于数据处理将冲击新兴的高性能网络市场。总之,对64位寻址、可输送 64 位浮点单位的 64 位宽数据高速缓存、可轻松扩展至后向兼容 64 位架构的纯 32 位 RISC 架构的期待,以及相信最终架构能够长期立于不败之地的信心开创了引人注目的前景。64 位 R4000 从此诞生。
就此,Quantum Effect Devices (QED) 公司崭露头角。QED 是一家致力于 CMOS VLSI 的 MIPS 计算机系统公司,其开发了一款 MIPS 架构的处理器—— R4600。该处理器专门面向嵌入市场,并在设计方面战胜了思科、朗讯、Extreme Networks 以及其他众多的领先网络公司。R4600 秉承了 RISC 高速缓存大小不断提高的传统(高速缓存成倍增长),以通过改善 CPI 及所采用设备的组合性来提高高速缓存的效率。充分利用 Microsoft 开发用于各种嵌入应用的WindowsCE,R4600还可以用于当代 PVR 的先驱,WebTV 和 EchoStar的机顶盒中。
同时,QED 开发了 R4600,而另一个 MIPS 架构的授权方——NEC 则正在开发其自己的 64 位 MIPS 处理器—— R4300。NEC 的处理器为 Nintendo-64 及惠普的高性能激光打印机系列提供了强劲的动力。
紧随 R4600/R4300 系列之后,QED 运用 SGI 提供的基金,为 NEC 和 IDT 开发了R5000。R5000 不仅向 R4600 增加了工作站类型的浮点,而且再次将高速缓存大小加倍。该款处理器为网络与打印市场中的第二代设计奠定了坚实的基础。
0.25 微米新型处理工艺刚刚兴起,此时消耗的晶体管更多。回顾上述分析,随着高速缓存大小的提高 CPI 改进显示出衰减,您可以看到停止长度 (stall length) 影响着衰减发生的位置。如果 DRAM 速度的增长速率与处理器速度的增长速率相同,就不会产生任何影响,因为在测定处理器周期时,停止