指令系统的变化及发展

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机指令系统的变化及发展

[摘要]

指令系统是计算机体系结构最基本的特征。早期, 人们采用微程序设计技术让指令系统变得日趋复杂, 后来逐渐认识到这种复杂指令系统计算机(C ISC) 并不能很好的提

高系统性能, 于是设计师们提出了精简指令系统计算机(R ISC) 体系结构, 并在一个芯片上实现了CPU。随着R ISC 微处理器迅速发展, 人们又发现R ISC 指令系统并不能充分

实现指令级并行处理, 从而影响了计算机性能的进一步提高, 又出现了超长指令字(VL IW ) 计算机指令系统。

[关键词] 指令系统R ISC VL IW

0、引言

指令系统是指机器所具有的全部指令的集合, 它反映了计算机所拥有的基本功能。在计算机系统的设计和使用过程中, 硬件设计人员采用各种手段实现指令系统, 而软件

设计人员则使用这些指令系统编制各种各样的系统软件和应用软件, 用这些软件来填补硬件的指令系统与人们习惯的使用方式之间的语义差距。因此, 可以说, 指令系统是软

件设计人员与硬件设计人员之间的一个主要分界面, 也是他们之间互相沟通的一座桥梁。在计算机系统的设计过程中, 指令系统的设计是非常关键的, 它必须由软件设计人员与

硬件设计人员来共同完成。设计指令系统就是要选择计算机系统中的一些基本操作(包括操作系统和高级语言中的) 应由硬件实现还是由软件实现, 选择某些复杂操作是由一

条专用的指令实现, 还是由一串基本指令实现, 然后具体确定指令系统的指令格式、类型、操作以及对操作数的访问方式。

1、复杂指令系统(C ISC)

1. 1 C ISC 的产生

早期的计算机, 存储器是一个很昂贵的资源, 因此希望指令系统能支持生成最短的程序。此外, 还希望程序执行时所需访问的程序和数据位的总数越少越好。在微程序出现后,

将以前由一串指令所完成的功能移到了微代码中, 从而改进了代码密度。此外, 它也避

免了从主存取指令的较慢动作, 从而提高执行效率。在微代码中实现功能的另一论点是: 这些功能能较好的支持编译程序。如果一条高级语言的语句能被转换成一条机器语言

指令, 这可使编译软件的编写变得非常容易。此外, 在机器语言中含有类似高级语言的

语句指令, 便能使机器语言与高级语言的间隙减少。这种发展趋向导致了复杂指令系统(C ISC) 设计风格的形成, 即认为计算机性能的提高主要依靠增加指令复杂性及其功能

来获取。

1. 2 C ISC 的主要特点C ISC 指令系统的主要特点是:

(1) 指令系统复杂。具体表现在以下几个方面:

①指令数多, 一般大于100 条。

②寻址方式多, 一般大于4 种。

③指令格式多, 一般大于4 种。

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

(3) 各种指令都可以访问存储器。

1. 3 C ISC 存在的问题

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

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

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

(3) 虽然复杂指令简化了目标程序, 缩小了高级语言与机器

指令之间的语义差距, 然而增加了硬件的复杂程度, 会使指令的执行周期大大加大, 从而有可能使整个程序的执行时间反而增加。

2、精简指令系统(R ISC)

2. 1 R ISC 的产生

由于C ISC 技术在发展中出现了问题, 计算机系统结构设计的先驱者们尝试从另一条途径来支持高级语言及适应VL S I 技术特点。1975 年IBM 公司John Cocke 提出了精简指令系统的设想。到了1979 年, 美国加州大学伯克莱分校由Pat terson 教授领导的研究组, 首先提出了R ISC 这一术语, 并先后研制了R ISC-É 和R ISC- Ê 计算机。1981 年

美国的斯坦福大学在Hennessy教授领导下的研究小组研制了M IPS R ISC 计算机, 强调高效的流水和采用编译方法进行流水调度, 使得R ISC 技术设计风格得到很大补充和发展。

2. 2 R ISC 的主要特点

90 年代初, IEEE 的M ichael Slater 对于R ISC 的定义作了如下描述:

R ISC 处理器所设计的指令系统应使流水线处理能高效率执行, 并使优化编译器能生成优化代码。R ISC 为使流水线高效率执行, 应具有下述特征: [2 ]

(1) 简单而统一格式的指令译码;

(2) 大部分指令可以单周期执行完成;

(3) 只有LOAD 和STORE 指令可以访问存储器;

(4) 简单的寻址方式;

(5) 采用延迟转移技术;

(6) 采用LOAD 延迟技术。

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

(1) 三地址指令格式;

(2) 较多的寄存器;

(3) 对称的指令格式。

2. 3 R ISC 的关键技术

(1) 延时转移技术

在转移指令之后插入了一条有效的指令, 而转移指令好像被延迟执行了, 因此, 把这种技术称为延迟转移技术。采用指令延迟转移技术时, 指令系列的调整由编译器自动进行, 一般不需要人来干预。

(2) 指令取消技术

采用指令延时技术, 遇到条件转移指令时, 调整指令系列非常困难, 在许多情况下找不到可以用来调整的指令。有些R ISC处理机采用指令取消技术, 在使用指令取消技术

的处理机中, 所有转移指令和数据变换指令都可以决定下面待执行的指令是否应该取消。如果指令被取消, 其效果相当于执行了一条空操作指令, 不影响程序的运行环境。

(3) 重叠寄存器窗口技术

基本思想是在处理机中设置一个数量比较大的寄存器堆,并把它划分成很多窗口。

每个过程使用其中相邻的三个窗口和一个公共的窗口, 而在这些窗口中有一个窗口是与前一个过程共用, 还有一个窗口是与下一个过程共用的。与前一过程共用的窗口可以用来存放前一过程传送给本过程的参数, 同时也存放本过程传送给前一过程的计算结果。同样, 与下一过程共用的窗口可以用来存放本过程传送给下一过程的参数和存放下一过程传送给本过程的计算结果。

(4) 指令流调整技术

为了使R ISC 处理机中的指令流水线高效率的工作, 尽量不断流, 优化编译器必须

分析程序的数据流和控制流。当发现指令流有断流可能时, 要调整指令列对有些可以通过变量重新命名来消除的数据相关, 要尽量消除。这样, 可以提高流水线的执行效率, 缩

相关文档
最新文档