从计算机出现,特别是1964年,IBM360系列计算机推出之后,人们一直在改进计算机的结构,不断增强指令系统功能。到了70年代,许多典型计算机的指令系统已经非常庞大,指令的功能相当复杂。表3.6列出了当时四种典型计算机的结构特点。 | ||||||||||||||||||||||||||||||||||||
表3.6 四种典型CISC处理机的结构特点 | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
从表3.6中看到,当时计算机的结构已经非常复杂。指令种类很多,寻址方式复杂,有大量的访问主存储器的指令,许多复杂指令的实现不得不借助于微程序,从而造成微出现容量大幅度增加。 1975年,IBM公司率先组织力量,开始研究指令系统的合理性问题。在John Coche领导下,于1979年研制出一种用于电话交换系统的32位小型计算机IBM 801,它有120条指令,工作速度10MIPS,这是世界上第一台采用RISC思想的计算机系统。1986年,IBM正式推出采用RISC体系结构的工作站IBM RT PC,并采用了新的虚拟存储技术。 从1979开始,美国加洲伯克利分校以David Patterson为首的研究小组开展了这方面的研究工作,他们指出CISC存在有多方面的缺点。 归纳起来,CISC指令系统主要存在如下三方面的问题: 1.20%与80%定律 在CISC中,各种指令的使用频度相差很悬殊,大量的统计数字表明,大约有20%的指令使用频度比较大,占据了80%的处理机时间。换句话说,有80%的指令只在20%的处理机运行时间内才被用到。 我们对Intel8088处理机的指令系统进行了分析研究。在C语言编译程序和PROLOG解释程序中,各种指令的使用频度和执行时间的分布情况见表3.7所示。其中,指令使用频度是指某一种指令在整个程序存储空间中所占的比例,它是静态的。指令执行时间是指某一种指令在整个程序的运行过程中所占的时间比例,这是动态的。 |
||||||||||||||||||||||||||||||||||||
表3.7 Intel8088处理机指令系统使用频度和执行时间统计 | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||