数据表示与指令系统_第1页
数据表示与指令系统_第2页
数据表示与指令系统_第3页
数据表示与指令系统_第4页
数据表示与指令系统_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.1数据表示一、数据表示与数据结构

数据表示是构成数据结构的元素,数据结构和数据表示是软硬件的交界面。数据表示指的是能由机器硬件直接识别和引用的数据类型。

当机器设置有定点加、减、乘、除、移位、比较等一系列定点运算指令和相应的运算硬件,可直接对定点数进行各种处理时,机器就有了定点数据表示。当机器设置有逻辑加、逻辑乘、按位相加、逻辑移位等一系列逻辑运算指令和相应逻辑运算硬件,可直接对逻辑数进行各种处理,机器就有了逻辑数据表示。若机器设置有浮点运算指令(如浮点加、减、乘、除、比较、存、取等)和相应的运算硬件,可以直接对浮点数进行处理,机器就有浮点数据表示。

软件系统所要处理的各种数据结构。有:串、队、栈、向量、阵列、链表、树、图等,它们反映了面向应用的各种数据元素或信息单元之间的结构关系。

数据结构是通过软件映象,将信息变换成机器中所具有的各种数据表示来实现的,数据表示是构成数据结构的元素。不同的数据表示可以为数据结构的实现提供不同的支持,表现在实现的效率和方便性上不同。数据结构和数据表示是软、硬件的交界面。设计系统时需要分配软、硬件的功能,确定在机器中设置哪些数据表示,以便对应用中所遇到的数据结构能有高的实现效率。数据表示的确定实质上是软、硬件的取舍问题。

图2.1变址操作对向量、阵列数据结构的支持二、高级数据表示1.自定义数据表示自定义(Self-defining)数据表示包括带标志符的数据表示和数据描述符两类。在传统的计算机体系结构中,用指令本身来说明操作数据的类型。如:定点加法表示操作数是纯小数或纯整数;浮点加法表示操作数是浮点数;十进制加法表示操作数是BCD数。由于操作数据类型不同,要设三种不同的指令(操作码)来加以区分。自定义数据表示则用数据本身来说明数据类型。表示形式有两种,即标志符数据表示和描述符数据表示。标志符数据表示要求对每一个数据都附加标志符,其格式如下:(1)带标志符的数据表示

高级语言用类型说明语句指明数据类型,让数据类型直接与数据本身联在一起,运算符不反映数据类型。如FORTRAN程序中,实数I和J的相加是采用如下的语句组指明的:

REALI,J

I=I+J

在说明I、J的数据为实型后,用通用的“+”运算符就可实现实数加法。传统的机器语言程序要用操作码指明操作数的类型。如浮点加法指令中,由于操作码是浮加,那么无论I和J是否是浮点数,总是按浮点数对待,进行浮点数加法。

编译时需要把高级语言程序中的数据类型说明语句和运算符变换成机器语言中不同类型指令的操作码,并验证操作数的类型是否与运算符所要求的一致,若不一致,还需用软件进行转换,这些都增加了编译的负担。浮加IJ

其中标志符指明后面的数据所具有的类型,如整数、浮点数、BCD数、字符串等。标志符数据表示的优点是能简化指令系统,便于程序调试和查错,缺点是数据区域占用的存储空间增加,并使指令执行的速度减慢。为了缩短高级语言与机器语言的这种语义差距,可让机器中的每个数据如下所示,都带有类型标志位:类型标志数据值数据(字)标志符数据表示的主要优点:(1)简化指令系统和程序设计;(2)简化编译程序;(3)便于实现一致性校验;(4)能由硬件自动完成数据类型的变换;(5)支持数据库系统的实现与数据类型无关的要求;(6)为软件调试和应用软件开发提供了支持。采用标志符数据表示带来的问题可能有两个:

(1)每个数据字因增设标志符,会使程序所占用的主存空间增加。

(2)采用标志符会降低指令的执行速度。2)数据描述符

自定义数据表示则用数据本身来说明数据类型。表示形式有两种,即标志符数据表示和描述符数据表示。为进一步减少标志符所占的存贮空间,对于向量、数组、记录等数据,由于每个元素具有相同的属性,产生数据描述符。

数据描述符和标志符的差别在于标志符是和每个数据相连,合存在一个存贮单元中,描述单个数据的类型特征;描述符是与数据分开存放的,专门用来描述所要访问的数据是整块数据还是单个数据,访问该数据块或数据元素所需要的地址以及其他特征信息等。

以B6700的描述符为例,其数据描述符和数据的形式分别如下:101各种标志符长度地址描述符000数据数据

描述符数据表示主要用来描述多维结构的数据类型,如向量、矩阵、记录等。其格式为:图2.4用描述符描述二维阵列2.向量数组数据表示例如,要计算

ci=ai+5+bi;i=10,11,…,1000

用FORTRAN语言写成的有关DO循环部分为DO40I=10,1000

40C(I)=A(I+5)+B(I)

在向量处理机上,具有向量、数组数据表示。

表现出在硬件上设置有丰富的向量或阵列运算指令,配置有以流水或阵列方式处理的高速运算器,只需用一条如下的向量加法指令:向量加A向量参数B向量参数C向量参数图2.5向量编址所用的参数3.堆栈数据表示

(1)有若干高速寄存器组成的硬件堆栈,并附加控制电路让它与主存中的堆栈区在逻辑上组成一个整体,访问的堆栈速度是寄存器的,堆栈的容量是主存的。

(2)有很丰富的堆栈操作类指令且功能很强,直接可对堆栈中的数据进行各种运算和处理。

(3)有力地支持高级语言程序的编译。假定有算术赋值语句

F=A*B+C/(D-E)

可以很容易通过用逆波兰表达式:AB*CDE-/+

(4)有力地支持子程序的嵌套和递归调用。

图2.6用堆栈实现子程序的嵌套和递归调用三、引入数据表示的原则

数据表示是能由硬件直接识别和引用的数据类型。数据结构反映各种数据元素或信息单元之间的结构关系。引入数据表示的原则一:

是提高系统的效率,即减少实现时间和所需的存贮空间。

衡量实现时间是否减少,主要是看在主存和处理机之间传送的信息量有否减少。

传送的信息量越少,其实现时间就会越少。以A、B两个200×200的定点数二维数组相加为例,用PL/1语言编写很简单,就是A=A+B

引入数据表示的原则二:引入某种高级数据表示后,是否提高其通用性和利用率。

如果只对某种数据结构的实现效率很高,而对其他数据结构的实现效率很低,或者引入这种数据表示在应用中很少用到,为此所花的硬件过多却并未在性能上得到好处,必然导致性能价格比的下降,特别是对一些复杂的数据表示。

四、浮点数尾数基值大小和下溢处理方法的选择浮点数尾数基值的选择图2.8浮点数可表示实数域中的值表2.1采用尾基为rm的浮点数表示的特性及其举例(1)可表示数的范围。由表2.1知,可表示的最小值为,rm增大,将减少;而可表示的最大值为,其中1-2-m部分为常数。(2)可表示数的个数。由表2.1知,可表示数的个数为,其中2p+m为常数,所以rm的增大将因增大,而使可表示数的个数增多。很容易得出,rm用16与用2的可表示数的个数之比为:(3)数在实数轴上的分布。对比表2.2和表2.3,可以看出rm用16的比用2的可表示数在实数轴上的分布要稀。例如在1/2和2之间,rm为2的有15个值,而rm为16的只有8个值。为了进一步分析数值分布和rm的关系,引入表示比。表示比e指的是在相同p、m位数时,在rm=2的可表示最大值以内,采用rm>2的可表示浮点数个数与rm=2的可表示浮点数个数之比。

(4)可表示数的精度。由于rm愈大,数在数轴上的分布变稀,已可得出数的表示精度下降的结论。从另一个角度分析,由于机器尾数位数m相同情况下,规格化十六进制尾数最高数位中可能出现4位机器位中的左面3位均为0,即rm=2的可能比rm=16的有多3位机器位的精度。若rm=2k,则最坏情况下,尾数中只用到m-k+1位机器位来表示,所以,可表示数的精度随rm增大而单调下降。

(5)运算中的精度损失。运算中的精度损失是指由于运算过程中尾数右移出机器字长使得有效数字丢失后所造成的精度损失,因此它与可表示数的精度是两个不同的概念。由于尾数基值rm取大后,对阶移位的机会和次数要少,且由于数的表示范围扩大,也使出现尾数溢出需右规的机会减少,这从表2.4对大量指令执行后统计得出的浮点加法移位距离和所占百分比情况可以看出。因此rm愈大,尾数右移的可能性愈小,精度的损失就越小。(6)运算速度。由于rm大时发生因对阶或尾数溢出需右移及规格化需左移的次数显著减少,因此运算速度可以提高。表2.4浮点加法的移位距离及百分比2.浮点数尾数的下溢处理方法(1)截断法(2)舍入法(3)恒置“1”法(4)查表舍入法图2.9rm=2,m=2时,各种下溢处理方法的误差曲线图2.10k位ROM查表舍入2.2寻址技术1、在通用寄存器指令集结构中,一般是利用寻址方式指明指令中的操作数是一个常数、一个寄存器操作数,或是一个存储器操作数。2、当前指令集结构中所使用的一些操作数寻址方式。一、寻址方式分析大多数计算机采用主存、通用寄存器、堆栈分类编址,因此有面向寄存器、堆栈和主存的分类寻址方式。

面向寄存器的寻址方式:

操作数可以取自寄存器或主存,结果大多保存在寄存器中,少量的送入主存。面向堆栈的寻址方式:

主要访问堆栈,少量访问主存或寄存器。面向主存的寻址方式:

主要访问主存,少量访问寄存器。

3.寻址方式使用情况统计结果

立即值寻址方式和偏移寻址方式的使用频率十分高。图2.12基址寻址各种信息在存贮器中存放的地址必须是:(1)字节信息地址为×…××××

(2)半字信息地址为×…×××0

(3)单字信息地址为×…××00

(4)双字信息地址为×…×000◆程序所使用的偏移量大小分布十分广泛;◆较小的偏移量和较大的偏移量均占有相当大的比例;◆将偏移量字段的大小设置为12~16位。这种长度可以支持上述75%~99%基于偏移寻址方式的数据访问中偏移量大小的表示。2.3指令系统的设计和改进

(InstructionSystemArchitecture)根据五个因素对计算机指令集结构进行分类:(1)在CPU中操作数的存储方法;(2)指令中显式表示操作数的个数;(3)操作数的寻址方式;(4)指令集所提供的操作类型;(5)操作数的类型和大小;指令一般由两部分组成:一部分是操作码,另一部分是操作地址码。当操作数地址为隐式时(如堆栈的操作,默认为栈顶),后一部分则不是必须的。根据指令地址码部分中显式指明的地址个数,则可形成零地址、单地址、二地址、三地址及四地址指令。确定指令格式就是选择指令字中的操作码长度和地址数。指令字的长度有定长和变长两种。

一种指令集中的指令到底要支持哪些类型的操作?

(指令集结构功能设计问题)

两种截然不同的方向:

◆复杂指令集计算机(CISC)强化指令功能,实现软件功能向硬件功能转移。

◆精简指令集计算机(RISC)尽可能地降低指令集结构的复杂性,以达到简化实现,提高性能的目的。 当今指令集结构功能设计的一个主要趋势。一、指令格式的优化操作码的优化表示表2.5某模型机指令使用频度举例

例:现设一台模型机,共有7种不同的指令,使用频度如上表所示。若操作码用定长码表示需要3位。指令使用频率指令使用频率I10.40I50.04I20.30I60.03I30.15I70.03I40.05按信息论观点,当各种指令的出现是相互独立的(实际情况并不都是如此)时候,操作码的信息源熵(信息源所包含的平均信息量)H为-∑pilog2pi

,由于操作码信息是用二进制位表示的,则H=-∑pilog2pi

按上表数据,得:H=0.40×1.32+0.30×1.74+0.15×2.74+0.05×4.32

+0.04×4.64+0.03×5.06+0.03×5.06=2.17

说明表示这7种指令,操作码平均只需2.17位就够了。采用3位定长操作码表示的信息冗余量。相当大。为减少信息冗余,可改用哈夫曼编码。熵首先是物理学里的名词。在传播中是指信息的不确定性,一则高信息度的信息熵是很低的,低信息度的熵则高。具体说来,凡是导致随机事件集合的肯定性,组织性,法则性或有序性等增加或减少的活动过程,都可以用信息熵的改变量这个统一的标尺来度量。

1948年,(ClaudeE.Shannon)香农提出了“信息熵”(shāng)的概念,解决了对信息的量化度量问题。把信息(熵)定义为离散随机事件的出现概率,信息是事物的不确定性。所谓信息熵,是一个数学上颇为抽象的概念,在这里不妨把信息熵理解成某种特定信息的出现概率。而信息熵和热力学熵是紧密相关的。香农信息定义信息熵=-(p1*logp1+p2*logp2+...+p32*logp32)其中,p1,p2,...,p32分别是这

32个球队夺冠的概率。香农把它称为“信息熵”

(Entropy),一般用符号

H表示,单位是比特。

变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大。

信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。编址方式对各种存储设备进行编码的方法主要内容:编址单位、零地址空间个数、并行存储器的编址、输入输出设备的编址1.编址单位•常用的编址单位:字编址、字节编址、位编址、块编址等。•编址单位与访问字长一般:字节编址,字访问部分机器:位编址,字访问辅助存储器:块编址,位访问。字节编址字访问的优点:有利于符号处理•字节编址字访问的问题:地址信息浪费对于32位机器,浪费2位地址(最低2位地址)对于64位机器,浪费3位地址存储器空间浪费读写逻辑复杂大端(BigEndin)与小端(LittleEndian)问题(大端存储格式,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,小端存储格式,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。

)表2.6操作码的哈夫曼编码及扩展操作码编码图2.14哈夫曼树举例

只要采用全哈夫曼编码,操作码的平均码长肯定是唯一的。如此例,操作码的平均码长非常接近于可能的最短位数(H)2.17位。这种编码的信息冗余为扩展操作码问题,现有14条指令,其使用频率如下:

I10.15I20.15I30.14

I40.13I50.12I60.11

I70.04I80.04I90.03I100.03I110.02I120.02I130.01I140.01

若只用两种码长的扩展码编码,其平均码长至少为多少位?

采用只有两种码长的扩展操作码,根据14条指令所给出的使用频度值分成两群,让使用频度较高的6条指令用3位操作码编码表示。如,用000~101分别表示使用频度为0.15、0.15、0.14、0.13、0.12、0.11的指令的操作码。余下110和111两个3位码作为长码的扩展标志,相当于一个二进制位,再扩展2位二进制码,既相当与共有3位。从而用5位码就可以表示8条使用频度较低的指令。因此,求得操作码的平均码长为:

3*(0.15+0.15+0.14+0.13+0.12+0.11+5*(0.04+0.04+0.03+0.03+0.02+0.02+0.01+0.01)=3.4IBM370指令中访存地址有如下形式:IBM370的指令中为访存,采用基址寻址,地址码可有如下形式:图2.18在定长指令字内实现多种地址制

如果让最常用的操作码最短,其地址码字段个数越多,就越能使指令的功能增强,越可以从宏观上减少所需的指令条数。例如,为实现A+B→C,采用单地址指令需经取A、加B、送C3条指令完成,而采用3地址指令,则只需一条指令即可完成。加ABC

不仅缩短程序的占用空间,也减少了访存取指令次数,加快程序执行的速度。虽然IBM370大部分都采用8位定长操作码,但对某些指令(尤其是原360指令系统中没有的),如启动I/O、测试I/O、暂停I/O、页面清除、访问方式位的复位、绝对时钟设置等特殊指令,其操作码由8位扩展到16位。指令字格式优化措施:(1)缩短操作码的平均码长;(2)缩短码的长度;(3)采用地址限制,加快程序执行速度;(4)采用长操作码与短地址码配合,具有灵活的地址形式;(5)按整数边界法则,采用灵活的指令字长度;目的:减少信息冗余,利于指令系统扩充

指令格式的优化问题,就是以较少的格式,尽可能短的码长来实现各种指令编码。

指令字包括操作码和地址码,所以对这两部分都采取优化措施。1、操作码的优化。这要用到霍夫曼压缩的概念。霍夫曼压缩法是一种频率相关的编码方法,即出现频率高的字符编码短,频率低的字符编码长,缩短平均码长。用霍夫曼树实现霍夫曼编码。根据所给的各种指令使用频率,把它们从小到大依次排好作为叶结点(相同的频率可任取一个排在前),然后把最小的两个结点值(频率)相加,形成一个新结点,以这个结点的值与其他的叶结点值比较大小,仍旧取最小的两个结点值合并产生新结点,直到最终合并为一个根(通常这个值是1或100)。简单地记为:从小到大排序,最小两个合并,重复上述过程,只剩一个结束。2、地址码的优化。指令码与地址码合理安排才能使指令格式得到优化。由于操作码优化后是变长的编码,如果整条指令是定长的,那么使地址码的宽度应随不同指令变化,以配合操作码形成定长指令;也可以通过改变指令字中的地址数和地址码的长度,以使单地址及多址都可以在一条指令中使用;如果操作码和地址码之外还有空余的码位,则设法用来存放立即操作数或常数。

当今的RISC机指令系统中,全都是用定字长指令格式。2.4指令系统的发展和改进CISC指令集结构的功能设计CISC结构追求的目标:强化指令功能,减少程序的指令条数,以达到提高性能的目的。增强指令功能主要是从如下几个方面着手:1.

提高运算型指令功能提高传送指令功能增加程序控制指令功能

面向目标程序增强指令功能2.面向高级语言的优化实现来改进

面向高级语言的优化就是尽可能缩小高级语言与机器语言之间的语义差距,以利于支持高级语言编译系统,缩短编译程序的长度和编译所需的时间。p59

面向高级语言和编译程序改进指令系统

(1)增加对高级语言和编译系统支持的指令功能

对源程序中各种高级语言语句进行使用频度的统计与分析,对使用频度高的语句,可以设置专门的指令或采取措施增加相应指令的功能,以提高其编译速度和执行速度。

从面向编译程序,尤其是从优化代码生成的角度进行考虑,增加指令集结构的规整性来改进指令系统。规整性:没有或尽可能减少例外的情况和特殊的应用,以及所有运算都能对称、均匀地在存储器单元或寄存器单元之间进行。(2)

高级语言计算机指令系统

◆面向高级语言(HL)的机器缩小机器语言和高级语言的语义差距。

◆间接执行型高级语言机器高级语言和机器语言是一一对应的,用汇编的方法(可以用软件实现,也可以用硬件实现)把高级语言源程序翻译成机器语言程序。◆直接执行型高级语言机器高级语言就作为机器语言,直接由硬件或固件对高级语言源程序的语句逐条进行解释以执行它。面向操作系统的优化实现改进指令系统

操作系统的实现在很大程度上取决于体系结构的支持。

(1)主要表现在对以下方面的支持中断处理进程管理存储管理和保护系统工作状态的建立与切换(2)设置指令支持系统工作状态和访问方式转移的指令支持进程转移的指令支持进程同步和互斥的指令

只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行;以简单有效的方式支持高级语言。(1)跳转:当控制指令为无条件改变控制流时,称之为“跳转”。(2)分支:当控制指令是有条件改变控制流时,称之为“分支”。(3)控制流程的各种改变情况条件分支跳转过程调用过程返回《周易》又称《易经》,是秦汉后直至今日无人真正通晓的上古典籍。《周易》分为经部和传部,经部之原名就为《周易》,是对四百五十卦易卦典型象义的揭示和相应吉凶的判断,而传部含《文言》、《彖传》上下、《象传》上下、《系辞传》上下、《说卦传》、《序卦传》、《杂卦传》,共七种十篇,称之为“十翼”,是孔门弟子对《周易》经文的注解和对筮占原理、功用等方面的论述。周易是个系统工程,历史上历代名人志士不断地研究之、并充实其内容,使其更具有旺盛的生命力。孔子经过多年磨难,从53岁开始学习"周易",他非常刻苦认真,致使串连竹简的牛皮绳磨断三次。孔子对卦辞和爻辞作了进一步的诠释和发挥,撰写了解读文字,形成了"周易•易传",儒教从此诞生。"易传"使"周易"的内容更逻辑化、系统化,他提出的“一阴一阳之谓道”,首次把宇宙万物分为既对立又统一的两大类,是最早的辩证法思想的形象表述。由此,"周易"用最简洁的语言,概括了极其博大乃至无穷的内容。其独特的理论思维模式,为人们提供了一个从时间、地点、条件全方位分析问题、认识事物的思想方法。

易卦系统最基本的要素为阴阳概念,而阴阳概念包括阴阳的性质和状态两层意义。如果不理会阴阳的状态,只论及其性质,则可以用阳爻(-)和阴爻(--)表示阴阳。将上述阴阳爻按照由下往上重叠三次,就形成了八卦,即“乾,坤,震,巽,坎,离,艮,兑”八个基本卦,称为八经卦。再将八经卦两两重叠,就可以得到六个位次的易卦,共有六十四卦。六十四卦称为六十四别卦,每一卦都有特定的名称。如果再考虑阴阳的状态,则阴阳概念又进一步划分为“老阴,老阳,少阴,少阳”四种情形,可以用“X,O,--,-,”四种符号分别代表之。六十四别卦每一卦的每个位次上都可能有四种阴阳状态,于是全部易卦系统就共有4096种不同的卦。如果将阴阳性质构成相同的各个卦放在一起,就形成了主卦卦名相同的六十四种分系统,可以称为某某卦系。

《周易》经部文字说明的内容就是对六十四卦系中部分易卦的象征意义的解释以及相应的人事吉凶判定(称为占断)。其中每一卦系的第一条内容是相应的全静卦的占断,其后的六条(乾坤卦系有七条)内容是顺次排列的对相应卦系一爻动的卦的占断。秦汉以后的易学对此都存在错误或者说模糊的认识。图2.24各种机器的语义差距面向操作系统的优化改进

面向操作系统的优化就是进一步缩小操作系统与体系结构之间的语义差距,以利于减少操作系统运行所需的辅助时间,节省操作系统软件所占用的存储空间。操作系统的实现依赖于体系结构对它的支持。许多传统机器指令例如算术逻辑指令、字符编辑指令、移位指令、控制转移指令等,都可用于操作系统的实现。此外,还有相当一部分指令是专门为实现操作系统的各种功能而设计的。

IBM360最初并没有支持公用区管理设置专门的指令,因此在A进程中,为使用公用区,就需要安排如下的指令串:A1:取L ;L为一个字节,存放公用区可否使用的标志判(L)

0 ;(L)0为0,置条件码为00;(L)0为1,置条件码为01

送全“1”到L ;置“1”(L)

0

条件转移A1 ;条件码为01时转移调用公用区K1 ;K1为K公用区子程序入口

…K公用区子程序为:K1:取C ;将公用单元C的值取到寄存器增值 ;在寄存器中完成增值存C ;将增值结果存回公用单元C

清除L ;置“0”(L)

0

返回 ;返回调用程序

采用“比较与交换”指令后,上述A进程给公用单元C的增值程序就相应改成(B进程也类似):

“比较与交换”指令的其他用法。使(R1)=全0,(R3)=全1,C中存标志位,就可以替代“测试与置定”指令。

“比较与交换”指令要比“测试与置定”指令灵活。

这两条指令不只是用在单处理机上,也可以用在多处理机上支持操作系统实现进程间通讯的同步和互斥,它们的功能是一般的机器指令无法实现的。尽管增加了“比较与交换”指令,但为保证软件的向后兼容,“测试与置定”指令仍被保留。

为了缩短系统结构与操作系统的语义差距还可以考虑的第三个重要思路是,把操作系统由软件子程序实现的某些功能进行硬化或固化,改用硬件和固件实现。例如,VAX—11/780,专门为进程切换设置有关“保存进程关联信息”和“恢复进程关联信息”的指令;将原先由子程序实现的功能进行硬化。堆栈型机器HP—3000设置了功能性很强的PCAL(PROCEDURECALL,程序调用)和EXIT(出口返回)两条专用指令来支持程序嵌套和递归调用,简化子程序工作区的分配管理,这两条指令的语义非常接近于高级语言CALL和RETURN语句的语义,它将原由软件实现的调用、返回功能改为用微程序固件解释实现,这实际上也是对操作系统存贮管理的有力支持。

按简化指令功能的方向发展与改进指令系统

1.精简指令系统思想的提出

针对CISC结构存在的这些问题,Patterson等人提出了精简指令系统计算机的设想。通过精减指令来使计算机结构变得简单、合理、有效,并克服CISC结构的上述缺点。他们提出了设计RISC机器应当遵循的一般原则。这些原则包括:

(1)确定指令系统时,只选择使用频度很高的那些指令,在此基础上增加少量能有效支持操作系统和高级语言实现及其他功能的最有用的指令,让指令的条数大大减少,一般不超过100条。(2)减少指令系统可采用的寻址方式,一般不超过两种。简化指令的格式,使之也限制在两种之内,并让全部指令都具有相同的长度。

(3)让所有指令在一个机器周期内完成。

(4)扩大通用寄存器的个数,(一般不少于32个寄存器,)尽可能减少访存操作,指令中只有存(STORE)、取(LOAD)指令才可访存,其他指令的操作一律都在寄存器间进行。

(5)大多数指令都采用硬联控制实现,少数指令采用微程序实现。(6)通过精简指令和优化设计编译程序,以简单有效的方式来支持高级语言的实现。CISC结构存在的缺点(1)在CISC结构的指令系统中,各种指令的使用频率相差悬殊。(2)CISC结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。(3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成.(4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。(5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。执行频率排序80X86指令指令执行频率(%执行指令总数)1Load22%2条件分支20%3比较16%4Store12%5加8%6与6%7减5%8寄存器-寄存器间数据移动4%9调用1%10返回1%合计96%Intel80X86最常用的十条指令

RISC目的使得计算机体系结构更加简单、更加合理和更加有效,克服CISC结构的缺点,使机器速度更快,程序运行时间缩短,从而提高计算机系统的性能。RISC设计原则选取使用频率最高的指令,并补充一些最有用的指令;每条指令的功能应尽可能简单,并在一个机器周期内完成;所有指令长度均相同;只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行;以简单有效的方式支持高级语言。RISC结构采用的基本技术

(1)遵循按RISC机器一般原则设计的技术;

(2)在逻辑上采用硬联实现和微程序固件实现相结合的技术;

(3)在CPU中设置数量较大的寄存器组,并采用重叠寄存器窗口的技(4)指令的执行采用流水和延迟转移技术设X、Y为主存单元,Rd,R0,Rb,Rc为寄存器单元,且R0中放值0。有一个未采用延迟转移的程序:

当执行到地址为212的条件转移指令时,如果转移成功,则预取的213指令就应作废,即不应将Rd的内容转送到Rb。为了保证程序的正确性,就应在212后面插入一条“加R0,R0,R0

”指令,相当于插入一条空操作指令(该指令执行结果仍然存的是0),如下列左边的程序所示。因此,不管212是否成功转移,都不会影响到其他运算的中间结果或最后结果,但这样,不管条件转移是否发生总要多花一个周期。(5)采用认真设计和优化编译系统设计的技术。设A、A+1,B,B+1为主存单元,则程序取A,Ra;(A)→Ra

存Ra,B ;(Ra)→B

取A+1,Ra ;(A+1)→Ra

存Ra,B+1 ;(Ra)→B+

实现的是将A和A+1两个主存单元的内容转存到B和B+1两个主存单元。由于取和存两条指令交替进行,又使用同一个寄存器Ra,出现寄存器R

a必须先取得A的内容,然后才能由Ra存入B,即上条指令未结束之前,下条指令无法开始。后面的指令也是如此。因此,指令之间实际上不能流水,每条指令均需两个机器周期。如果通过编译调整其指令的顺序为取A,Ra ;(A)→Ra

取A+1,Rb ;(A+1)→Rb

存Ra,B ;(Ra)→B

存Rb,B+1 ;(Rb)→B+13.RISC技术的发展采用RISC结构后可以带来如下明显的优点:简化指令系统设计,适合超大规模集成电路实现;(2)提高机器的执行速度和效率;(3)降低设计成本,提高了系统的可靠性;(4)可以提供直接支持高级语言的能力,简化编译程序的设计。典型的RISC型机器基本特征RISC结构还存在某些问题:

(1)由于指令少,使原在CISC上由单一指令完成的某些复杂功能现在需要用多条RISC指令才能完成,这实际上加重了汇编语言程序员的负担,增加了机器语言程序的长度,从而占用了较大的存贮空间,加大了指令的信息流量。(2)对浮点运算和虚拟存贮器的支持虽有很大加强,但仍不够理想。

(3)RISC机器上的编译程序要比CISC机器上的难写。图2.27CLIPPER机的概念性结构代表性的RISC处理机的特征代表性的RISC处理机的特征(续)在机器上直接运行的程序是由指令组成指令系统是软件与硬件之间的一个主要分界面,也是他们之间互相沟通的一座桥梁。•硬件设计人员采用各种手段实现指令系统,而软件设计人员则使用这些指令系统编制系统软件和应用软件,用这些软件来填补指令系统与人们习惯的使用方式之间的语义差距。•指令系统设计必须由软件设计人员和硬件设计人员共同来完成。•指令系统发展相当缓慢,需要用软件来填补的东西也就越来越多。按简化指令功能的方向发展与改进指令系统1.精简指令系统思想的提出

针对CISC结构存在的这些问题,Patterson等人提出了精简指令系统计算机的设想。通过精减指令来使计算机结构变得简单、合理、有效,并克服CISC结构的上述缺点。他们提出了设计RISC机器应当遵循的一般原则。这些原则包括:

(1)确定指令系统时,只选择使用频度很高的那些指令,在此基础上增加少量能有效支持操作系统和高级语言实现及其他功能的最有用的指令,让指令的条数大大减少,一般不超过100条。(2)大大减少指令系统可采用的寻址方式的种类,一般不超过两种。简化指令的格式,使之也限制在两种之内,并让全部指令都具有相同的长度。

(3)让所有指令都在一个机器周期内完成。

(4)扩大通用寄存器的个数,一般不少于32个寄存器,以尽可能减少访存操作,所有指令中只有存(STORE)、取(LOAD)指令才可访存,其他指令的操作一律都在寄存器间进行。

(5)为提高指令执行速度,大多数指令都采用硬联控制实现,少数指令采用微程序实现。(6)通过精简指令和优化设计编译

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论