零壹与或非分享 http://blog.sciencenet.cn/u/dthome9180 站得更高,才能望得更;远看得更细,才能找到好草

博文

处理器指令系统漫谈(3):CISC

已有 2653 次阅读 2019-7-30 11:44 |个人分类:观点评述|系统分类:科普集锦| 处理器, 指令

1970年代的指令系统是CISC(Complex Instruction Set Computer,复杂指令系统)的天下,如CAQA下表所示,所有6个版本的CAQA这个表就没变过,永恒的经典。CISC指令系统是由当时的工艺条件(小规模集成电路,硬件少)和计算机科学(编译弱)共同决定的,是极其自然性的选择,其单位字节所能表示的运算操作个数相对多(与RISC对应)。

image.png

上次我们谈了IBM 360/370对计算机体系结构和指令系统的提出目的是为了“兼容”,是为了“市场”,关键问题是软件开发成本。70多年来的计算机领域的发展,一直是用户应用先行,软件跟进,硬件再跟进,新应用再出现,循环往复直到永远。新市场、新应用、新软件会永远不停地出现,硬件要在生产工艺的若干限制下不断地改进来支持软件。

IBM 360/370指令系统设计目标之一是重视汇编、编译和其它元程序(metaprogram,应该是函数库的前身)的广泛使用。高级编程语言极大的提升了软件开发生产力,但是高级语言的编译器当时还处在初始阶段,能力不强。同时开发编译器和操作系统本身也非常复杂,开发周期长【1】。硬件设计包括指令系统如何应对这个问题呢。

IBM 360/370是大型机(Mainframe)的代表,特点就是“贵”,只能是非常有钱的政府部门和大公司才能买得起。以DEC PDP-11为代表的的小型机应运而生,经典而传奇,它使得大学购买计算机成为可能,培育了几乎所有早期的计算机学科和计算机人才。【2】1970年代中期,DEC公司发现16位的PDP-11地址空间不够用了,需要新的机器和新的指令系统,VAX应运而生。

VAX指令系统首先要考虑的就是降低系统软件开发成本的问题,架构师们决定高级语言的每条语句对应VAX指令系统的一条指令。另外VAX特别重视代码尺寸(Code Size),因为当时硬件指令存储都不大,而编译出来的二进制程序都不小。【3】【4】

而代码尺寸小,正是CISC为数不多的优点之一。这个优点在2010年代又一次被市场认可。现在流行的x86和ARM的共同点都是平均每字节操作数多的指令系统。而传统RISC每4个字节(32位)才一个操作,二进制代码尺寸大,当“存储墙”不断严峻,取指带宽会严重影响了处理器整体性能。新时代指令系统一定要重视代码尺寸这个问题,RISC-V采用混合指令长度(32/16)和指令压缩概念解决这个问题。这个问题以后还要重点强调。

1977年DEC公司提出VAX-11的设计目标:

1) 兼容PDP-11

2) 减轻实现编译器和操作系统的负担

3) 充分利用集成电路技术的发展

VAX是一台真正的内存-内存结构计算机。VAX的这种设计被称为“高级语言计算机体系结构(HLLCA, High-Level Language Computer Architecture)”。VAX指令系统极其全面,几乎是所有指令系统的超集,在CAQA和很多指令系统相关论文中被作为指令系统量化分析的基础。

当然,“理想很丰满,现实很骨感”,HLLCA遇到了巨大的性能问题,指令系统太复杂了,使得计算机硬件的指令执行效率(单位时间执行的操作个数)非常不好。这种HLLCA除了VAX之外,就很少有市场上的建树了,很快在1980年代,让位给了RISC指令系统。

image.png

image.png

【1】Amdahl, G. M., et al. 196404. "Architecture of the IBM System/360." IBM Journal of Research and Development 8(2): 87-101.

【2】Bell, G., et al. 1970. A new architecture for mini-computers: the DEC PDP-11. AFIPS'70. Proceedings of the May 5-7, 1970, spring joint computer conference. Atlantic City, New Jersey, ACM: 657-675.

【3】Bell, G. and W. D. Strecker. 1976. Computer structures: What have we learned from the PDP-11? . ISCA-3'76. Proceedings of the 3rd annual symposium on Computer architecture, ACM: 1-14.

【4】Strecker, W. D. 197805. VAX-11/780-A virtual address extension to the DEC PDP-11 family. AFIPS'78. , ACM: 967.





https://wap.sciencenet.cn/blog-102148-1191700.html

上一篇:处理器指令系统漫谈(2):兼容
下一篇:处理器指令系统漫谈(4):开放
收藏 IP: 114.246.172.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-29 19:39

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部