|||
我们已经总结了5个指令系统设计的原则了:兼容、代码尺寸、开放、可扩展、简单。
进入1980年代,开启了RISC的时代直到现在。然而,RISC这个概念只是指指令集简单而已,是否所有的RISC指令系统体系结构都整体简单呢,ISA中除了指令集的其他Architecture的简单与否是否也是决定指令系统是否成功、是否长寿的关键因素呢。
先来看看CAQA第一版中RISC综述介绍的早期的RISC指令系统,如下面的照片所示
之前介绍过了,DLX专门为CAQA设计和MIPS类似。i860是Intel设计的,由于x86的极大成功,i860就无疾而终了。M88000是Motorola设计的,很快IBM/Apple/Motorola决定联合开发PowerPC指令系统,所以M88000昙花一现。这两个指令系统从CAQA第二版开始就消失了。
SPARC和MIPS是大学学术成果的衍生,值得介绍一下。MIPS以后再说(也没什么好说的,去看CAQA第3版到第5版,去看两位作者另一部经典教材Computer Organization & Design: The Hardwae/Software Interface)。先说说脱胎于最早出现的Berkeley RISC I/II的SPARC指令系统,Sun公司1984-1987年多年研究后推出了SPARCv7指令系统【1】,然后91年SPARCv8,然后94年SPARCv9,然后UltraSPARC,然后OracleSPARC。读了SPARC和之前Berkeley RISC的相关论文后,笔者发现SPARC指令系统”实在不简单”。
先说优点:
1. SPARC指令系统是开放的,是IEEE的一个标准,谁都可以用,日本设计了很多SPARC处理器。SPARC也曾经是很多开源处理器设计的首选。
2. SPARC指令集是RISC的,1987年第一版只有53条定点指令,13条浮点指令。
笔者认为,SPARC指令系统有悖于指令系统体系结构早期定义中的"timing independence"、“架构和微结构分离”等原则。
SPARC和早期的RISC I/II的特色有两个:寄存器窗口(Register Windows)和延迟指令(delayed instruction)。
寄存器窗口用来支撑函数快速调用和返回,在ARM中也有类似的设计。但是在Patterson的经典论文【2】中竟然出现了这样一段话,因为Berkeley当时没有编译专家。这个技术带来的结果就是物理寄存器个数多,设计了一大堆状态寄存器,并且和C语言System V ABI不同。关于这个问题,Hennessy在【3】中提出了3个缺点,其中一个就是当时的编译技术已经能很好的利用寄存器堆了,没有必要用寄存器集register set这种技术。
延迟跳转专门针对流水线设计,这显然是“微结构相关的”。这个技术被之后的IBM PowerPC点名批判,不利于多发射乱序指令流水线,被硬件转移预测技术代替了。而直到现在SPARC的手册中仍然为了兼容保留了这个技术,并为此发明了众多指令和状态寄存器。MIPS I也是支持延迟跳转的,但是从MIPS II开始就被去掉了。
SPARC还有tagged architecture技术,还有PSR,还有ASI,还有nPC,还有复杂的多处理器支持内存同步等等一大堆技术和名词,技术真的很优秀,但理解起来很费事。这些怎么在大学课堂上教学生啊,怎么培养下一代啊。
而且为了支持高级语言,专门保留了对Smalltalk指令级支持(SOAR架构)【4】。Bekerley还研究过对LISP语言支持的指令系统(SPUR架构)【5】。虽然这两个高级语言非常著名(面向对象C++、字节码Java、动态类型Python等等元素都有),但是应该来讲还是影响了SPARC的通用性和简单性。高级编程语言千千万,为啥为了这两种语言专门设计指令,一旦这两个高级语言不流行了,岂不鸡肋了。
SPARC处理器和工作站曾经在2000年前后的互联网时代初期大放异彩(很大的原因是价格适中),后来被x86-64服务器替代了,后来处理器RTL和操作系统源码都开源了(OpenSparc T1/T2轰动一时),后来被Oracle收购了又不开源了。
还有,RISC-V的命名源头就是RISC I、RISC II、SOAR、SPUR后第5个Berkeley开发的RISC指令系统,所以叫RISC-V。好在RISC-V吸取了经验教训,通篇看不到任何微结构相关内容。
大学是产生前沿思想的地方,但是由于资金和人力存在一些限制,由于对前沿技术的迷恋,在处理器指令系统这个领域中往往会起个大早赶个晚集。
当然RISC处理器一直被x86 CISC处理器压制的关键是“市场”。个人PC市场被x86占领之后,很少有那种量大面广的应用市场出现了,众多RISC处理器只能去竞争市场有限的高性能计算市场。而一旦x86-64借着“兼容”的优势进入这个市场,又借着开源Linux的东风(想想为SPARC开发Linux就头痛,虽然笔者也不太懂操作系统),RISC处理器又没戏了。当然也有例外,那就是2000年代中后期出现的智能手机和移动终端市场,ARM这种“CISC内涵的RISC”(平均每4字节操作数多)的指令系统,也是来源于英国剑桥大学,终于发扬了RISC的光大,报了一箭之仇。后来ARMv8 AArch64杀入服务器处理器市场,但仍然很难撼动x86的根基。
讲了这么多。大家认为SPARC这种RISC指令系统简单吗?看看手册,然后咱们一起讨论。
【1】Garner, R. B., et al. 1988. The scalable processor architecture (SPARC). COMPCON'88. Digest of Papers. COMPCON Spring 88 Thirty-Third IEEE Computer Society International Conference.
【2】Patterson, D. A. 1985. "Reduced instruction set computers." Commun. ACM 28(1): 8-21.
【3】Hennessy, J. 1984 "VLSI Processor Architecture." TC-33'84. IEEE Transactions on Computers C-33(12): 1221-1246.
【4】Ungar, D., et al. 1984. Architecture of SOAR: Smalltalk on a RISC. ISCA-11'84. Proceedings of the 11th annual international symposium on Computer architecture, ACM: 188-197.
【5】Taylor, G. S., et al. (198606). Evaluation of the SPUR Lisp architecture. ISCA-13'86. Proceedings of the 13th annual international symposium on Computer architecture. Tokyo, Japan, IEEE Computer Society Press: 444-452.
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-24 10:40
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社