Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1863916
  • 博文数量: 343
  • 博客积分: 10342
  • 博客等级: 上将
  • 技术积分: 2892
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 12:34
个人简介

你必须非常努力,才能看起来毫不费力!

文章存档

2012年(3)

2011年(5)

2010年(2)

2009年(40)

2008年(293)

分类:

2008-10-20 19:32:41

 RISC的英文全称为“Reduced Instruction Set Computing”,中文即“精简指令集”,它的指令系统相对简单,它只要求硬件执行很有限且最常用的那部分指令,大部分复杂的操作则使用成熟的编译技术,由简单指令合成。

卡内基梅隆大学这样定义RISC的特点为:
1、大多数指令在单周期内完成
2、采用LOAD/STORE结构。因为访问存储器指令所需要的时间比较长,在指令系统中要尽量减少这类指令,所以RISC指令中只保留不可再少的LOAD/STORE两种存储器访问指令。
3、硬布线控制逻辑。使得大多数指令在单周期内执行完成,以减少为程序技术中的指令解释开销。
4、减少指令和寻址方式的种类
5、固定的指令格式
6、译码优化

其实目前RISC还具有以下特点
1、面向寄存器结构
2、注重提高流水线的执行效率,尽量让减少流水线断流,提高流水线效率
3、优化编译技术


下面介绍一下RISC中的关键技术
1、延时转移技术:
在RISC处理机中采用流水线工作方式,取指令和执行指令并行工作,那么当遇到条件转移指令时,流水线可能断流。为了尽量保证流水线的执行效率,在转移指令之后插入一条有效的指令,而转移指令好像被延时了,这样了技术即为延迟转移技术。通常指令序列的调整由编译器自动进行。需要注意的是:调整指令序列是不能改变原有程序的数据关系;被移动的指令不破坏机器的条件码。

2、指令取消技术
由于采用指令延迟技术中,遇到条件转移指令时,调整指令序列比较困难,采用了指令取消技术。所有转移指令和数据变换指令都可以决定待执行指令是否应该取消。为了提高执行效率,采用取消规则为:如果向后转移(转移的目标地址小雨当前程序计数器PC值),则转移不成功时取消下一条指令,否则执行下一条指令;如果向前转移,则相反,在转移不成功时执行下一条指令,否则取消。

3、重叠寄存器窗口技术
由于RISC的指令系统比较简单,通常采用一段子程序来实现。因此RISC中的CALL和RETURN非常多,而且都需要通过堆栈操作保存前一过程指针、数据等。为了尽量减少因为CALL和RETURN操作访问存储器的量,提出了重叠寄存器窗口技术。基本思想:在处理器中设置一个数量较大的寄存器堆,并划分成窗口。每个过程使用其中的三个窗口和一个公共窗口,而在这些窗口中有一个窗口式前一个过程公用的,还有一个窗口是与后一个过程共用。与前一过程公用的窗口可以用来存放前一过程传递被本过程的参数。

4、指令流水调整技术
为了保持指令流水线高效率,不断流,优化编译器必须分析程序的数据流和控制流。当发现指令有断流可能时,要调整指令顺序。有些可以通过变量重命名来消除的数据相关,要尽量消除。例如:
ADD R1,R2,R3; (R1)+(R2)->R3
ADD R3,R4,R5; (R3)+(R4)->R5
MUL R6,R7,R3; (R6)*(R7)->R3
MUL R3,R8,R9; (R3)*(R8)->R9
调整指令后
ADD R1,R2,R3;
MUL R6,R7,R0;
ADD R3,R4,R5;
MUL R0,R8,R9;
调整指令后,速度可以提高一倍

5、硬件为主固件为辅
指令系统采用为程序实现的优点:便于实现复杂指令,便于修改指令系统,增加机器的灵活性,但是速度慢。所以RISC一般采用硬件为主固件为辅的方法实现指令。

阅读(2249) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~