计算机系统平台
上QQ阅读APP看书,第一时间看更新

2.2 指令系统和指令格式概述

指令系统是计算机硬件的语言系统,是指计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。不同计算机的指令系统包含的指令种类和数目也不同。一般均包含算术运算型、逻辑运算型、数据传送型、判定和控制型、移位操作型、位(位串)操作型、输入和输出型等指令。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件和机器的适用范围。

早期的计算机,存储器是一个很昂贵的资源,因此希望指令系统能支持生成最短的程序。此外,还希望程序执行时所需访问的程序和数据位的总数越少越好。在微程序出现后,将以前由一串指令所完成的功能移到了微代码中,从而改进了代码密度。此外,它也避免了从主存取指令的较慢动作,从而提高执行效率。在微代码中实现功能的另一论点是:这些功能能较好地支持编译程序。如果一条高级语言的语句能被转换成一条机器语言指令,这可使编译软件的编写变得非常容易。此外,在机器语言中含有类似高级语言的语句指令,便能使机器语言与高级语言的间隙减少。这种发展趋向导致了复杂指令系统(Complex Instruction Set Computer,CISC)设计风格的形成,即认为计算机性能的提高主要依靠增加指令复杂性及其功能来获取。

CISC指令系统的主要特点是:

①指令系统复杂。具体表现在以下几个方面:指令数多,一般大于100条;寻址方式多,一般大于4种;指令格式多,一般大于4种。

②绝大多数指令需要多个机器时钟周期方可执行完毕。

③各种指令都可以访问存储器。

但CISC指令系统主要存在如下三方面的问题:

①CISC中各种指令的使用频度相差悬殊,大量的统计数字表明,大约有20%的指令使用频度比较高,占据了80%的处理机时间。换句话说,有80%的指令只在20%的处理机运行时间内才被用到。

②VLSI的集成度迅速提高,使得生产单芯片处理机成为可能。在单芯片处理机内,希望采用规整的硬布线控制逻辑,不希望用微程序。而在CISC处理机中,大量使用微程序技术以实现复杂的指令系统,给VLSI工艺造成很大困难。

③虽然复杂指令简化了目标程序,缩小了高级语言与机器指令之间的语义差距,然而增加了硬件的复杂程度,会使指令的执行周期大大加长,从而有可能使整个程序的执行时间反而增加。

由于CISC技术在发展中出现了问题,计算机系统结构设计的先驱者们尝试从另一途径来支持高级语言及适应VLSI技术特点。1975年IBM公司的John Cocke提出了精简指令系统的设想。到了1979年,美国加州大学伯克利分校由Patterson教授领导的研究组,首先提出了RISC(Reduced Instruction Set Computer,精简指令集计算机)这一术语,并先后研制了RISC-I和RISC-II计算机。1981年斯坦福大学Hennessy教授领导的研究小组研制了MIPS-RISC计算机,强调高效的流水和采用编译方法进行流水调度,使得RISC技术设计风格得到很大补充和发展。

RISC的主要特点:20世纪90年代初,IEEE(Institute of Electrical and Electronics Engineers,电气和电子工程师协会)的Michael Slater对于RISC的定义作了如下描述:RISC处理器所设计的指令系统应使流水线处理能高效率执行,并使优化编译器能生成优化代码。RISC为使流水线高效率执行,应具有下述特征:

①简单而统一格式的指令译码;

②大部分指令可以单周期执行完成;

③只有LOAD和STORE指令可以访问存储器;

④简单的寻址方式;

⑤采用延迟转移技术;

⑥采用LOAD延迟技术。

RISC为使优化编译器便于生成优化代码,应具有下述特征:

①三地址指令格式;

②较多的寄存器;

③对称的指令格式。

RISC的主要问题是编译后生成的目标代码较长,占用了较多的存储器空间。但由于半导体集成技术的发展,使得RAM芯片集成度不断提高和成本不断下降,目标代码较长已不成为主要问题。RISC技术存在的另一个潜在缺点是对编译器要求较高,除了常规优化方法外,还要进行指令顺序调度。