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

下载本文档

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

文档简介

1、1234一一. .数据结构数据结构 定义:定义:是面向软件的数据类型,反映各种数据元素或单元是面向软件的数据类型,反映各种数据元素或单元之间的结构关系。之间的结构关系。二二. .数据表示数据表示 定义:定义:是面向硬件的数据类型,机器硬件能是面向硬件的数据类型,机器硬件能直接识别和引直接识别和引用用的的数据类型数据类型。 必要条件:必要条件:需相应的运算指令和运算硬件需相应的运算指令和运算硬件( (处理部件处理部件) )支持。支持。 分类:分类:基本数据表示、高级数据表示。基本数据表示、高级数据表示。 基本数据表示:基本数据表示:定点数、浮点数、十进制数、逻辑数、字定点数、浮点数、十进制数、逻

2、辑数、字符等。符等。5三三. 数据表示和数据结构数据表示和数据结构 数据结构的实现:数据结构的实现: 通过数据表示和软件映像相结合方法实现。通过数据表示和软件映像相结合方法实现。)数据表示()软件映像(数据结构%1%xx 数据结构与数据表示的关系:数据结构与数据表示的关系: 数据表示是数据结构的一个子集;数据表示是数据结构的一个子集; 数据表示是软、硬件界面的一部分,数据结构是软件数据表示是软、硬件界面的一部分,数据结构是软件和应用界面的一部分。和应用界面的一部分。 数据表示选择实际上是软、硬取舍问题。数据表示选择实际上是软、硬取舍问题。6 尾数尾数m m码制:码制:可用原码或补码表示;可用原

3、码或补码表示;方便运算方便运算 尾数尾数m m数制:数制:用定点纯小数表示;用定点纯小数表示;提高精度、性能提高精度、性能 指数指数e e码制:码制:一般用移码表示;一般用移码表示;方便运算方便运算 指数指数e e数制:数制:用定点整数表示;用定点整数表示;尾数已为小数,方便对阶尾数已为小数,方便对阶 指数的基指数的基r re e:通常为通常为2 2;方便对阶方便对阶四、浮点数数据表示四、浮点数数据表示1 1、参数选择、参数选择(1 1)表示方法)表示方法,emrmN 相关参数:相关参数: 尾数尾数m m、指数、指数e e的码制和数制,的码制和数制, 尾数的基尾数的基r rm m、指数的基、指

4、数的基r re e, (2 2)部分参数选择)部分参数选择7IEEE754IEEE754浮点数表示浮点数表示81823S符号位符号位EM指数指数尾数尾数32位单精度形式位单精度形式11152S 符号位符号位EM指数指数尾数尾数64位双精度形式位双精度形式9 单精度格式:单精度格式: 若若E=0E=0且且M=0M=0,N N为为0 0; 若若E=0E=0且且M0M0,N=(-1)N=(-1)S S2 2-126-126 ( (0 0.M).M),非规格化数;,非规格化数; 若若11E254E254,N=(-1)N=(-1)S S2 2E-127E-127 ( (1 1.M).M),规格化数;,规

5、格化数; 若若E=255E=255且且M 0M 0,N=NaNN=NaN(非数值);(非数值); 若若E=255E=255且且M = 0M = 0,N= (-1)N= (-1)S S (无穷大)。(无穷大)。10所以,所以,S=1,E=127,M=0.5,因此,因此N=-1.5单精度格式为单精度格式为例例2 2 以下的以下的3232位数所表示的单精度浮点数为多少?位数所表示的单精度浮点数为多少?1 1000000001 100000000其中,其中,S=1,E=129,M=0.25,因此,因此N=(-1-1)* *(1.251.25)* *2 2129-127129-1271 1= -51 0

6、1111111 11 01111111 1(-1-1)* *(1.51.5)* *2 2127127-127-1271由于由于N= -1.5=例例3 3 将将 5/32 5/32 转换成转换成IEEEIEEE单精度格式。单精度格式。5/32=1.255/32=1.25* *4/32=1.254/32=1.25* *2 22 2 /2/25 5 =1.25=1.25* * 2 2-3-3所以所以S=0S=0,E=-3+127=124E=-3+127=124,M=0.25M=0.25,因此,因此5/325/32的单精度格式为的单精度格式为 0 01111100 0 0 01111100 011目的

7、:目的:缩小高级语言与机器语言间语义差别;缩小高级语言与机器语言间语义差别; 实现操作与数据类型无关的特性。实现操作与数据类型无关的特性。自定义数据表示:自定义数据表示:由数据本身来表明数据类型,使计算机内的由数据本身来表明数据类型,使计算机内的数据具有自定义能力。数据具有自定义能力。自定义数据表示的两种方法:自定义数据表示的两种方法:带标识符的数据表示法:用以定义单个数据的数据类型和数带标识符的数据表示法:用以定义单个数据的数据类型和数值的数据表示。值的数据表示。数据描述符表示法:用以定义复杂数据结构(如向量、矩阵、数据描述符表示法:用以定义复杂数据结构(如向量、矩阵、多维数组、记录等)的数

8、据表示。多维数组、记录等)的数据表示。2.1.2 高级数据表示高级数据表示12(1 1)格式:)格式:标志符标志符 数据数据(2 2)特点)特点: :A.A.指令不需区分数据类型,运算器根据数据中的类型进行相应指令不需区分数据类型,运算器根据数据中的类型进行相应运算。运算。B.B.标志符定义法标志符定义法, ,只对系统软件和高级语言的编译器建立只对系统软件和高级语言的编译器建立, ,而而对高级程序员则透明。对高级程序员则透明。13(3 3)优点:简化了指令系统和程序设计;)优点:简化了指令系统和程序设计; 简化了编译程序;简化了编译程序; 由硬件自动实现一致性检验和数据类由硬件自动实现一致性检

9、验和数据类 型的转变;型的转变; 支持了数据库系统的实现与数据类型支持了数据库系统的实现与数据类型 无关的要求;无关的要求; 为软件调试和应用软件开发提供了支为软件调试和应用软件开发提供了支 持;持;14 (4 4)引入可行性分析:引入可行性分析: a.存储空间问题存储空间问题数据数据指令指令总数少总数少总数多总数多不采用标志符:不采用标志符:数据数据指令指令采用标志符:采用标志符: BA 数据字增长数据字增长指令字缩短指令字缩短通常有:面积通常有:面积B面积面积A 根据程序局部性原理,根据程序局部性原理,存储空间会减少。存储空间会减少。15 b.b.实现时间问题实现时间问题 取出数据后转换,

10、必须推迟运行时间;取出数据后转换,必须推迟运行时间; 必须有专门的指令用于标志符初始化,增加了必须有专门的指令用于标志符初始化,增加了辅助开销。辅助开销。 结论:结论: 运行时间增加,宏观时间减少,存储空间减少。运行时间增加,宏观时间减少,存储空间减少。 适合专用机(支持动态数据类型)中使用。适合专用机(支持动态数据类型)中使用。1617目的:描述复杂和多维的结构类型。 标志符标志符描述单个数据,描述单个数据,与数据相连,共存于同一存与数据相连,共存于同一存储单元中,是数据的一部分;储单元中,是数据的一部分; 描述符描述符描述多个数据,描述多个数据,与数据分开,增加一级寻址,与数据分开,增加一

11、级寻址,是程序的一部分。是程序的一部分。格式:格式:描述符描述符标志位标志位特征标记特征标记数据块长度数据块长度数据块起始地址数据块起始地址3 38 820202020图图2.5 数据描述符格式数据描述符格式 优点:优点:整块数据可一次性操作;简化编译中的代码生成。整块数据可一次性操作;简化编译中的代码生成。18 在在B6700B6700计算机中,每个计算机中,每个4848位长的字,附加有位长的字,附加有3 3位标志符。位标志符。当标志符为当标志符为000000状态时,状态时,当标志符为当标志符为101101时,时,表明后面的字为数据值;表明后面的字为数据值;就表示该字为描述符。就表示该字为描

12、述符。 101101特征标记特征标记数据块长度数据块长度起始地址起始地址 操作方式操作方式: (见下页)(见下页)19B6700计算机借助描述符访问指令所需操作数的过程如下图计算机借助描述符访问指令所需操作数的过程如下图2.6所所示。示。图图2.6 通过描述符取数据块的过程通过描述符取数据块的过程操作码操作码X Y101101101地址形成逻辑地址形成逻辑000000101指令指令描述符描述符寄存器寄存器描述符描述符主存储器主存储器(数据)(数据)(数据)(数据)20通过多次使用描述符通过多次使用描述符,将描述符按树形连接来描述一个将描述符按树形连接来描述一个3*4二维数二维数组,可用下图组,

13、可用下图2.7所示:所示:三元素描三元素描述符向量述符向量阵列描述符阵列描述符三元素描述符向量三元素描述符向量四元素向量四元素向量3 4 4二维数组二维数组四元素向量四元素向量阵列描述符阵列描述符1013S1101410141014S2S3S4S2S3S4a a11 11 a a12 12 a a13 13 a a1414a a21 21 a a22 22 a a23 23 a a2424a a31 31 a a32 32 a a33 33 a a3434000000000000a a1111a a1212a a1313a a1414000000000000a a2121a a2222a a2

14、323a a2424000000000000a a3131a a3232a a3333a a3434图图2.7 用二重描述符表示二维数组用二重描述符表示二维数组S121 向量数据表示设计内容:向量数据表示设计内容: 向量参数、向量指令向量参数、向量指令( (含向量处理相关硬件含向量处理相关硬件) )、向量存取方法。、向量存取方法。基地址基地址向量长度向量长度向量数据表示的参数向量数据表示的参数起始地址起始地址(基地址十位移量)(基地址十位移量)向量有效长度向量有效长度向量长度向量长度-位移量位移量位移量位移量.向量参数向量参数:基地址,长度和位移量基地址,长度和位移量22向量加向量加XAYBZ

15、C向量指令:向量指令:A0A1A2A3A4A5A6A7A8A9A10A11B-4B-3B-2B-1B0B1B2B3C0C1C2C3C4C5C6C7C8C9C10C11位移量Ad=4基址Ab起始地址As=4有效长度Ae=124=8Bs=4Be=4(4)=8Bd=4基址BbCd=4基址CbCs=4Ce=124=8源向量A结果向量C源向量B向量处理部件:向量处理部件: 专用的向量处理器及向量专用的向量处理器及向量REG等;等;向量操作处理:向量操作处理:对向量元素数据的操作处理同基本数据表示处理。对向量元素数据的操作处理同基本数据表示处理。 向量指令示例:向量指令示例: C(4:11)=A(4:11

16、)+B(-4:3)23 稀疏向量存取:稀疏向量存取:A0A3A4A5 (0)A6 (0)A7A1 (0)A2 (0)01235647稀疏向量稀疏向量A0A3A4A7压缩向量压缩向量1A00A10A20A61A31A41A70A5Z向量(有序位向量)向量(有序位向量)向量存取方法:向量存取方法:常规存取、稀疏存取常规存取、稀疏存取242.1.3 2.1.3 引入数据表示的原则引入数据表示的原则1.1.看系统效率是否提高看系统效率是否提高 体现在是否减少实现时间和是否减少存储空间方面。体现在是否减少实现时间和是否减少存储空间方面。 举例:举例:向量数据表示时,向量运算部件节省时间,向量数据表示时,

17、向量运算部件节省时间,辅助开销时间减少;向量指令减少了指令存储空间。辅助开销时间减少;向量指令减少了指令存储空间。2.2.该数据表示的通用性和利用率是否高该数据表示的通用性和利用率是否高 通用性:通用性:是否对多种数据结构均适用。是否对多种数据结构均适用。 利用率:利用率:设置的硬件的利用率。设置的硬件的利用率。 举例:举例:树型与指针数据表示。树型:对向量、数组树型与指针数据表示。树型:对向量、数组等支持不够;指针:对多种数据结构支持较好。等支持不够;指针:对多种数据结构支持较好。四、堆栈数据表示(自己看)四、堆栈数据表示(自己看)252.1.4 浮点数尾数基值大小和下溢处理方法的选择浮点数

18、尾数基值大小和下溢处理方法的选择 1. 浮点数尾数基值的选择浮点数尾数基值的选择 为讨论选择不同浮点数尾数基值的影响,我们用为讨论选择不同浮点数尾数基值的影响,我们用rm来表示来表示其浮点数尾数的基。在机器中,一个其浮点数尾数的基。在机器中,一个rm进制的数位是用进制的数位是用log2 rm 个机器位数来表示,因此,尾数的机器位数为个机器位数来表示,因此,尾数的机器位数为m时,相时,相当于当于rm进制的尾数共有进制的尾数共有m个数位,其权值由小数点开始向右个数位,其权值由小数点开始向右依次为依次为 。 其中,其中, 21mmmmrrr、/log2mrmm 例如,例如,rm=2 时,时,m为为m

19、; rm=16 时,时,m为为m/4; rm=10 时,时, m为为m/4。当。当rm为为 2 的整数次幂时,就有特例:的整数次幂时,就有特例: 。 所谓以所谓以rm为尾数基值的浮点数就是当其尾数右移一个为尾数基值的浮点数就是当其尾数右移一个rm进制数位时,进制数位时,为保持数值不变,为保持数值不变, 阶码才增阶码才增 1。 mmmr226表表 2.1 采用尾基为采用尾基为rm的浮点数表示的特性及其举例的浮点数表示的特性及其举例 27 (1) 可表示数的范围。由表可表示数的范围。由表 2.1 知,可表示的最小值为知,可表示的最小值为 , rm增大,增大, 将减少;而可表示的最大值为将减少;而可

20、表示的最大值为 , 其中其中 1-2-m部分为常数,部分为常数,rm增大,由于增大,由于 增大,增大, 而使可而使可表示的最大值增大。因此,表示的最大值增大。因此,随随rm的增大,可表示数的范围增的增大,可表示数的范围增大大。换句话说,对于大的。换句话说,对于大的rm值,为表示相同范围的数,其阶值,为表示相同范围的数,其阶码的位数码的位数p可以减少。可以减少。 1mr1mr)21 (12mmpr)21 (12mmpr28 (2) 可表示数的个数。由表可表示数的个数。由表 2.1 知,可表示数的个数为知,可表示数的个数为 , 其中其中2p+m为常数,所以为常数,所以rm的增大将因的增大将因 增增

21、大,大, 而使可表示数的个数增多。而使可表示数的个数增多。很容易得出,很容易得出,rm用用 16 与用与用 2 的可表示数的个数之比为的可表示数的个数之比为 )1 (21mmpr11mr875. 1211216112mpmp29 (3) 数在实数轴上的分布。对比表数在实数轴上的分布。对比表 2.2 和表和表 2.3,可以,可以看看出出rm用用 16 的比用的比用 2 的可表示数在实数轴上的分布要稀的可表示数在实数轴上的分布要稀。例如例如在在 1/2 和和 2 之间,之间,rm为为 2 的有的有 15 个值,而个值,而rm为为 16 的只有的只有 8 个个值。由此可见,值。由此可见, rm越大,

22、数的密度分布要稀的多越大,数的密度分布要稀的多。30表表 2.2 p=2, m=4, rm=2 的规格化浮点数的规格化浮点数 31表表 2.3 p=2, m=4, rm=16 的规格化浮点数的规格化浮点数 32 (4) 可表示数的精度可表示数的精度。由于由于rm愈大,数在数轴上的分布变愈大,数在数轴上的分布变稀,已可得出数的表示精度下降的结论稀,已可得出数的表示精度下降的结论。从另一个角度分析,从另一个角度分析,由于机器尾数位数由于机器尾数位数m相同情况下,规格化十六进制尾数最高相同情况下,规格化十六进制尾数最高数位中可能出现数位中可能出现 4 位机器位中的左面位机器位中的左面 3 位均为位均

23、为 0, 即即rm=2 的的可能比可能比rm=16 的有多的有多 3 位机器位的精度。若位机器位的精度。若rm=2k,则最坏情,则最坏情况下,尾数中只用到况下,尾数中只用到m-k+1 位机器位来表示,所以,位机器位来表示,所以,可表示可表示数的精度随数的精度随rm增大而单调下降。增大而单调下降。 33 (5) 运算中的精度损失。运算中的精度损失是指运算中的精度损失。运算中的精度损失是指由于运由于运算过程中尾数右移出机器字长使得有效数字丢失后所造成的算过程中尾数右移出机器字长使得有效数字丢失后所造成的精度损失,因此它与可表示数的精度是两个不同的概念精度损失,因此它与可表示数的精度是两个不同的概念

24、。由。由于尾数基值于尾数基值rm取大后,对阶移位的机会和次数要少,且由于取大后,对阶移位的机会和次数要少,且由于数的表示范围扩大,也使出现尾数溢出需右规的机会减少。数的表示范围扩大,也使出现尾数溢出需右规的机会减少。因此因此rm愈大,尾数右移的可能性愈小,精度的损失就越小。愈大,尾数右移的可能性愈小,精度的损失就越小。 (6) 运算速度。由于运算速度。由于rm大大时发生因对阶或尾数溢出需右移时发生因对阶或尾数溢出需右移及规格化需左移的次数显著减少,及规格化需左移的次数显著减少,因此因此运算速度可以提高。运算速度可以提高。 r rm m应根据应用需求选择:应根据应用需求选择: 大型机上大型机上r

25、 rm m较大,微型机一般取为较大,微型机一般取为2 2。342. 浮点数尾数的下溢处理方法浮点数尾数的下溢处理方法 截断法截断法:将尾数超出机器字长的部分简单截去。将尾数超出机器字长的部分简单截去。特点:实现简单,不用增加硬件,但最大误差太大,平均误差特点:实现简单,不用增加硬件,但最大误差太大,平均误差最大,且无法调节,所以一般不用最大,且无法调节,所以一般不用 (2) 舍入法:舍入法:在机器运算部分的规定字长之外增设一位附加在机器运算部分的规定字长之外增设一位附加位,存放溢出部分的最高位,每当进行尾数下溢处理时,将此位,存放溢出部分的最高位,每当进行尾数下溢处理时,将此附加位加附加位加1

26、; 特点:实现简单,增加的硬件少,最大误差小,平均误差接近特点:实现简单,增加的硬件少,最大误差小,平均误差接近于于0,稍偏正。但是处理速度比较慢,一般用于,稍偏正。但是处理速度比较慢,一般用于中低速机器或中低速机器或要求精度损失尽可能小的场合要求精度损失尽可能小的场合; 35(3) 恒置恒置“1”法:法: 在机器运算部分的规定字长之最低位恒置在机器运算部分的规定字长之最低位恒置“1”状态;状态;特点:这种方法实现简单,不需要增加硬件和处理时间,平特点:这种方法实现简单,不需要增加硬件和处理时间,平均误差接近于均误差接近于0,稍偏正;但最大误差太大;适用于,稍偏正;但最大误差太大;适用于中高速

27、中高速机机器;。器;。 (4) 查表舍入法:查表舍入法: 用用Rom或或PLA存放下溢处理表,每次经查存放下溢处理表,每次经查表来读出相应的处理结果;下溢处理表的内容安排为当尾数表来读出相应的处理结果;下溢处理表的内容安排为当尾数最低最低k-1位为位为全全“1”时以截断法时以截断法设设置处理结果,其他情况按置处理结果,其他情况按舍入法舍入法设置下溢处理结果。设置下溢处理结果。特点:速度较快,平均误差接近于特点:速度较快,平均误差接近于0;但是硬件设备量增多。;但是硬件设备量增多。36图图 2.9 rm=2, m=2 时,各种下溢处理方法的误差曲线时,各种下溢处理方法的误差曲线 几种方法比较:几

28、种方法比较:舍舍入法及查表舍入法入法及查表舍入法较好,但舍入法平较好,但舍入法平均误差稍偏正均误差稍偏正(0.5(0.5时进位时进位) ),查表舍入,查表舍入法平均误差最接近法平均误差最接近零零。下溢处理方法选择:下溢处理方法选择: 选择查表舍入法选择查表舍入法。371、在相同的机器字长和尾数位数的情况下,浮点数尾数基值取、在相同的机器字长和尾数位数的情况下,浮点数尾数基值取小,可使浮点数(小,可使浮点数( )A运算过程中数的精度损失降低运算过程中数的精度损失降低 B数在数轴上的分布变密数在数轴上的分布变密C可表示数的范围增大可表示数的范围增大 D可表示数的个数增多可表示数的个数增多2、浮点数

29、尾数基值、浮点数尾数基值rm=8,尾数数值部分长,尾数数值部分长6位,可表示的最小位,可表示的最小正尾数为(正尾数为( ) A0.5 B. 0. 25 C. 0.125 D.1/643、在尾数下溢处理方法中,平均误差最大的是(、在尾数下溢处理方法中,平均误差最大的是( ) A截断法截断法 B. 舍入法舍入法 C恒置恒置“1”法法 D. ROM查表法查表法4.浮点数尾数基值浮点数尾数基值rm=16,除尾符之外的尾数机器位数为,除尾符之外的尾数机器位数为8位时位时,可表示的规格化最大正尾数为(,可表示的规格化最大正尾数为( )A1/2 B. 15/16 C. 1/256 D. 255/25638目

30、标:目标:确定指令中操作数存储部件的编址方式和寻址方式。确定指令中操作数存储部件的编址方式和寻址方式。一、编址方式一、编址方式RegisterRegister、MemoryMemory、堆栈、堆栈 ;B B、ByteByte方式:方式:Normal modeNormal mode,因为编址单位,因为编址单位 = = 信息的基本单信息的基本单位。出现的问题:存放单位和访问单位不一致的问题,因此位。出现的问题:存放单位和访问单位不一致的问题,因此将产生如何存放数据的问题。将产生如何存放数据的问题。 (最流行)(最流行)C. BitC. Bit方式:方式:优缺点与字节编址相同,但可有力地支持可变字优

31、缺点与字节编址相同,但可有力地支持可变字长运算。长运算。但太复杂,一般不用。但太复杂,一般不用。 393.3.ByteByte编址方式下,产生的存贮和访问问题编址方式下,产生的存贮和访问问题 任意位置存放数据任意位置存放数据节省空间、损失时间;节省空间、损失时间;存储字的起始位置存放数据存储字的起始位置存放数据-节省时间、浪费空节省时间、浪费空间;间; 在数据长度的整数倍位置存放数据在数据长度的整数倍位置存放数据两者折衷两者折衷。 整数边界对齐原则:字节整数边界对齐原则:字节 X XXXXXXXXX 单字单字 X XXX00XX00 半字半字 X XXXX0XXX0 双字双字 X XX000X

32、000故:故:R/WR/W都能在都能在1 1个周期内完成;但浪费相对更减小。个周期内完成;但浪费相对更减小。4041定义:寻找操作数及数据存放单元的方法称为寻址方式。定义:寻找操作数及数据存放单元的方法称为寻址方式。汇编和组成已经介绍了基本原理。下面要从计算机系统结构汇编和组成已经介绍了基本原理。下面要从计算机系统结构的角度介绍寻址方式的设计思想的角度介绍寻址方式的设计思想计算机主存、寄存器、堆栈分类编址,因此寻址面向主存、计算机主存、寄存器、堆栈分类编址,因此寻址面向主存、寄存器、堆栈进行寻址。寄存器、堆栈进行寻址。(1 1)面向寄存器)面向寄存器速度快速度快(2 2)面向堆栈)面向堆栈减轻

33、编译负担减轻编译负担(3 3)面向主存)面向主存针对大量数据操作针对大量数据操作面向寄存器的寻址方式,操作数、结果都在面向寄存器的寻址方式,操作数、结果都在R R OPC OPCR R OPC OPCR,R,R R OPC OPCR,R,R,R,R R OPC OPCR,R,M M 二、寻址方式二、寻址方式 42面向主存储器的寻址方式:直接和间接寻址。直接面向主存储器的寻址方式:直接和间接寻址。直接寻址指令无法容纳长的地址码,修改程序没有再入寻址指令无法容纳长的地址码,修改程序没有再入性,即修改数据还必须修改指令。间接寻址,在主存性,即修改数据还必须修改指令。间接寻址,在主存高端或者寄存器中存

34、放间接地址,指令可以很短。高端或者寄存器中存放间接地址,指令可以很短。OPCMOPCM,M OPC M,M,M面向堆栈的寻址方式,地址是隐含的,不必给出操面向堆栈的寻址方式,地址是隐含的,不必给出操作数地址:作数地址: OPC OPC M 43三、定位方式三、定位方式1 1、物理地址与逻辑地址、物理地址与逻辑地址 各程序逻辑地址均从零开始。各程序逻辑地址均从零开始。 程序执行时使用的是物理地址。程序执行时使用的是物理地址。 多任务多任务OSOS引发程序定位问题。引发程序定位问题。2 2、定位方法、定位方法 直接定位直接定位物理地址物理地址= =逻辑地址;逻辑地址; 静态定位静态定位物理地址物理

35、地址= =逻辑地址逻辑地址+a+a,a a不可变,不可变, 装入时修改程序得到物理地址;装入时修改程序得到物理地址; 动态定位动态定位物理地址物理地址= =逻辑地址逻辑地址+a+a,a=(BX)a=(BX)可变,可变, 执行时计算执行时计算( (不修改程序不修改程序) )得到物理地址。得到物理地址。 动态定位是最流行的方法。动态定位是最流行的方法。441、指令系统设计规则指令系统设计规则(1 1)完备性)完备性- -所有功能都包含在指令系统中;所有功能都包含在指令系统中;(2 2)规整性,均匀性)规整性,均匀性- -相似操作及操作数有相同的规定;相似操作及操作数有相同的规定;(3 3)正交性)

36、正交性- -分离原则,不同字段相互独立;分离原则,不同字段相互独立;(4 4)可组合性)可组合性- -指令操作适应于各种数据类型和寻址方式;指令操作适应于各种数据类型和寻址方式;(5 5)对称性)对称性- -方便编译,如方便编译,如A=A+B,则有,则有B=B+A;(6 6)可扩充性可扩充性预留空间,便于扩充;预留空间,便于扩充;2.3.1 2.3.1 指令系统设计的基本原则指令系统设计的基本原则452 2、指令系统基本设计思想指令系统基本设计思想1 1)指令系统指令集结构设计)指令系统指令集结构设计确定它的指令格式、类型、操作以及对操作数的访问方式。确定它的指令格式、类型、操作以及对操作数的

37、访问方式。2 2)指令系统功能集设计)指令系统功能集设计(1 1)确定基本操作是由软件还是硬件实现)确定基本操作是由软件还是硬件实现 指标:指标:执行时间及实现效率(性能执行时间及实现效率(性能/ /价格)。价格)。(2 2)复杂操作用一条指令还是一串指令实现)复杂操作用一条指令还是一串指令实现 指标:指标:目标程序的实现效率;(目标程序的实现效率;(CISC/RISCCISC/RISC) 支持编译程序和支持编译程序和OSOS,减少语言间语义差别。,减少语言间语义差别。3 3)指令格式设计及优化)指令格式设计及优化 包括操作码、寻址方式和指令字格式设计及优化。包括操作码、寻址方式和指令字格式设

38、计及优化。 指标:指标:平均码长、方便译码、满足需求。平均码长、方便译码、满足需求。46指令的优化通过指令的优化通过操作码优化和地址码优化操作码优化和地址码优化进行。进行。如何用最短的位数表示指令的操作信息和地址信息,使程序中如何用最短的位数表示指令的操作信息和地址信息,使程序中指令的平均字长最短。指令的平均字长最短。操作码操作码( (OPC) OPC) 地址码地址码( (A)A)指令的组成指令的组成: :47I1I10.400.40I2I20.300.30I3I30.150.15I4I40.050.05I5I50.040.04I6I60.030.03I7I70.030.03指令指令使用频度使

39、用频度1.定长操作码的信息冗余量定长操作码的信息冗余量=0.40=0.40* *1.32+0.301.32+0.30* *1.74+0.151.74+0.15* *2.74+0.052.74+0.05* *4.32+4.32+0.040.04* *4.64+0.034.64+0.03* *5.06+0.035.06+0.03* *5.06=2.175.06=2.17操作码的信息源熵:操作码的信息源熵:信息源所包含的平均最短信息量信息源所包含的平均最短信息量. .对于二对于二进制表示的信息来说,计算公式为:进制表示的信息来说,计算公式为:H=-PH=-Pi iloglog2 2P Pi i, ,

40、 其中其中P Pi i为为第第i i个信息源的频度。个信息源的频度。信息冗余量信息冗余量K K=1-H/=1-H/操作码的实际平均长度操作码的实际平均长度. .48则则信息冗余量信息冗余量K K=1-H/=1-H/操作码的实际平均长度操作码的实际平均长度=1-2.17/3=0.28=1-2.17/3=0.28( (即即28%),28%),相当大。相当大。为减少此信息冗余量,改用哈夫曼编码。为减少此信息冗余量,改用哈夫曼编码。49 4 4)哈夫曼树实现方法:)哈夫曼树实现方法: (1) (1)将事件按出现频率次序排列;将事件按出现频率次序排列; (2) (2)将出现频率将出现频率最小最小的两个事

41、件合并(频率相加)后,的两个事件合并(频率相加)后,再按出现频率次序重新排列;再按出现频率次序重新排列; (3) (3)继续过程继续过程(2)(2),直至剩下一个频率,直至剩下一个频率( (构成一棵树构成一棵树) ); (4) (4)置树中每左和右子树分别为置树中每左和右子树分别为1 1和和0 0,直至叶结点;,直至叶结点; (5) (5)叶结点编码为从根结点到叶结点的编码组合。叶结点编码为从根结点到叶结点的编码组合。 频率相等的事件可任意排列。频率相等的事件可任意排列。501111110000000.030.030.040.050.150.300.400.060.090.150.300.60

42、1.00I7 I6 I5 I4 I3 I2 I1Pili=0.40*1+0.30*2+0.15*3+0.05*5+0.04*5+0.03*5+0.03*5 =2.20(位位)这种编码的信息冗余为这种编码的信息冗余为K=1-2.17/2.201.36%01011011100111011111011111利哈夫曼算法,构造哈夫曼树利哈夫曼算法,构造哈夫曼树5 5 5 5 3 2 151521111110000001.000.600.300.150.060.090.030.030.040.050.150.300.40I7 I6 I5 I4 I3 I2 I11010010001100010000010

43、0000010101011010010110111001110111110111115 5 5 5 3 2 153 哈夫曼编码方法可使平均码长减少,但表示指令操作码哈夫曼编码方法可使平均码长减少,但表示指令操作码长度很不规整,因此要采用一种折衷方法。扩展编码法就是其长度很不规整,因此要采用一种折衷方法。扩展编码法就是其中一种较好的选择。中一种较好的选择。扩展操作码编码是介于定长二进制编码和哈夫曼编码之间。扩展操作码编码是介于定长二进制编码和哈夫曼编码之间。操作码长度不是定长的,但只有有限的几种码长。操作码长度不是定长的,但只有有限的几种码长。 思想:利用概率高的用短操作码表示,概率低的用长操作

44、思想:利用概率高的用短操作码表示,概率低的用长操作码表示。码表示。常用扩展方法常用扩展方法等长扩展法,以等长扩展法,以4-8-124-8-12为例,即每次扩展为例,即每次扩展4 4位,有位,有15/15/1515/15/15编编码法及码法及8/64/5128/64/512编码法编码法3 3、扩展、扩展哈哈夫曼编码夫曼编码 5415/15/15编码法编码法8/64/512编码法编码法0000000111101111 0000111111111111 11111111 11111111 1111 111011100001000000011111 11110000000101111000 00001

45、000 00011111 01111000 1000 00001000 1000 0001011115151586451215/15/15编码法和编码法和8/64/512编码法编码法55 15/15/15编码法编码法 适用于适用于pi在前在前15种指令中比较大,而在种指令中比较大,而在30种指令后种指令后急剧减小的情况。急剧减小的情况。 8/64/512编码法编码法 适用于适用于pi在前在前8种指令中比较大,且之后的种指令中比较大,且之后的64种指令种指令的的pi也不是过小时。也不是过小时。 衡量标准衡量标准:码长码长pili最短。最短。注意扩展目标注意扩展目标(各频率段各频率段)间关系。间关

46、系。无论是哈夫曼编码,还是扩展哈夫曼编码,其中的无论是哈夫曼编码,还是扩展哈夫曼编码,其中的短码都短码都不能与长码的首部有相同。不能与长码的首部有相同。56表表4.1 操作码的扩展操作码的扩展 结果:结果:哈夫曼编码平均码长最短;定长编码最长。哈夫曼编码平均码长最短;定长编码最长。 注意注意: I I4 4至至I I7 7的哈夫曼扩展编码长原为的哈夫曼扩展编码长原为5 5,优化为,优化为4 4。57580.30 0.20 0.16 0.09 0.08 0.07 0.04 0.03 0.02 0.010.30 0.20 0.16 0.09 0.08 0.07 0.04 0.03 0.02 0.0

47、111 01 101 001 1001 1000 0001 00001 000001 00000011 01 101 001 1001 1000 0001 00001 000001 0000002 2 3 3 4 4 4 5 6 62 2 3 3 4 4 4 5 6 6 0.15 1.00 0.39 0.19 0.10 0.06 0.03 0.31 0.61 0.01 0.02 0.03 0.04 0.07 0.08 0.09 0.16 0.20 0.30 01111111110000000059平均代码长度为平均代码长度为(0.30+0.20)(0.30+0.20)2 + (0.16+0.0

48、9)2 + (0.16+0.09)3 + (0.08+0.07+0.04)3 + (0.08+0.07+0.04)4 4 + 0.03+ 0.035 + (0.02+0.01)5 + (0.02+0.01)6 = 1 + 0.75 + 0.76 + 0.15 + 6 = 1 + 0.75 + 0.76 + 0.15 + 0.18 = 2.84 0.18 = 2.84 60练习题练习题假设某模型机共有假设某模型机共有7 条指令,条指令,7 条指令条指令I1 I 7 使用的使用的频度分别为:频度分别为:0.35,0.25,0.20,0.10,0.04,0.03,0.03,(1)利用哈夫曼算法,构造

49、哈夫曼树,并给出哈夫曼)利用哈夫曼算法,构造哈夫曼树,并给出哈夫曼编码和平均码长编码和平均码长(2)给出哈夫曼扩展码编码(两种码长)。)给出哈夫曼扩展码编码(两种码长)。611 1)涉及问题)涉及问题: : 地址码个数的如何选择最优?地址码个数的如何选择最优? 如何缩短地址码?如何缩短地址码?2 2)地址码个数的选择)地址码个数的选择 A.A.三地址指令三地址指令: :(OPCOPC,ADAD,AS1AS1,AS2AS2) B.B.两地址指令:(两地址指令:(OPCOPC,ADAD,ASAS) C.C.单地址指令:(单地址指令:(OPCOPC,A A) D.D.零地址指令:(零地址指令:(OP

50、COPC) 62那么如何选择地址码的个数呢?那么如何选择地址码的个数呢?我们先来评价一下这几种表示方法的优缺点,评价的标我们先来评价一下这几种表示方法的优缺点,评价的标准就是准就是程序的存储量程序的存储量和和程序的执行速度程序的执行速度。例:计算例:计算x=(ax=(a* *b+c-d)/(e+f);b+c-d)/(e+f);下面程序中,下面程序中,A A表数据表数据a a的的地址,其他类推,用地址,其他类推,用R1R1,R2R2等表示通用寄存器(累加器)等表示通用寄存器(累加器),用,用Y Y等表存放中间结果的存储单元,所有程序都用直接寻等表存放中间结果的存储单元,所有程序都用直接寻址编址;

51、址编址;用三地址指令用三地址指令 用二地址指令用二地址指令MUL X,A,B MOV X,AMUL X,A,B MOV X,AADD X,X,C MUL X,BADD X,X,C MUL X,BSUB X,X,D ADD X,CSUB X,X,D ADD X,C ADD Y,E,F SUB X,D ADD Y,E,F SUB X,DDIV X,X,Y MOV Y,EDIV X,X,Y MOV Y,E ADD Y,F ADD Y,F DIV X,YDIV X,Y63用一地址指令:用一地址指令: 用零地址:用零地址: 用多累加器(通用寄存器)用多累加器(通用寄存器) 二地址指令编写二地址指令编写

52、LOAD E PUSH A MOV R1,A LOAD E PUSH A MOV R1,A ADD F PUSH B MUL R1,B ADD F PUSH B MUL R1,B STORE X MUL ADD R1,C STORE X MUL ADD R1,C LOAD A PUSH C SUB R1,D LOAD A PUSH C SUB R1,D MUL B ADD MOV R2,E MUL B ADD MOV R2,E ADD C PUSH D ADD R2,F ADD C PUSH D ADD R2,F SUB D SUB DIV R1,R2 SUB D SUB DIV R1,R2

53、DIV X PUSH E MOV X,R1 DIV X PUSH E MOV X,R1 STORE X PUSH FSTORE X PUSH F ADD ADD DIV DIV POP X POP X64地址数目地址数目指令条指令条数数程序存储量程序存储量执行速度(访存信息量)执行速度(访存信息量)三地址三地址5 55 5P P15A15A65B65B5 5P+15A+15D=370BP+15A+15D=370B二地址二地址7 77 7P P14A14A63B63B7 7P+14A+19D=430BP+14A+19D=430B一地址一地址9 99 9P P9A9A45B45B9 9P+9A+9

54、D=234BP+9A+9D=234B零地址零地址12121212P+7A=40BP+7A=40B1212P+7A+29D=544BP+7A+29D=544B二地址二地址R R型型8 88 8P P7A7A9R9R40408 8P+7A+9R+7D=192BP+7A+9R+7D=192B“P P “表操作码长;表操作码长;“A A”表地址码长;表地址码长;“D D”表数据长;表数据长;“R R”表通用寄存器长;表通用寄存器长;“B B”表字节数;表字节数;取取D D4A A16P P16B16B65分析结果:分析结果:(1 1)对于向量、矩阵运算为主的计算机系统,)对于向量、矩阵运算为主的计算机

55、系统,可以采用三地址结构;可以采用三地址结构;(2 2)对于二地址结构,只有采用多累加器才是)对于二地址结构,只有采用多累加器才是可取的;用于数据传送操作,速度很快;可取的;用于数据传送操作,速度很快;(3 3)如果硬件结构要求简单,并且以连续运算)如果硬件结构要求简单,并且以连续运算为主,如求累加和等,宜采用一地址结构;为主,如求累加和等,宜采用一地址结构;(4 4)对于解决递归问题为主的机器,宜采用零)对于解决递归问题为主的机器,宜采用零地址结构。地址结构。66 3 3)缩短地址码的方法)缩短地址码的方法 问题分析:由于逻辑地址空间的大小固定的。因问题分析:由于逻辑地址空间的大小固定的。因

56、此,缩短的地址码长度的根本目的是用一个此,缩短的地址码长度的根本目的是用一个较短的较短的地址码表示一个比较大的逻辑地址空间地址码表示一个比较大的逻辑地址空间。 问题的解决方法:问题的解决方法: A.A.用间接寻址方式缩短地址码的长度。即通过在用间接寻址方式缩短地址码的长度。即通过在RAM RAM 的低端开辟一个专门的存放地址的区域。的低端开辟一个专门的存放地址的区域。 B.B.用变址寻址方式缩短地址码的长度,地址偏移用变址寻址方式缩短地址码的长度,地址偏移量比较短。量比较短。 C.C.用用Register Indirect Addressing Register Indirect Addres

57、sing 方法方法 MOVMOV BX, offset BX, offset x x ADDADD AX, BX AX, BX ADDADD CX, BX. CX, BX. 672.4.1 CISC和和RISC686970711.CISC存在的问题:存在的问题:CISC指令系统过于复杂,指令规模过于庞大,呈指令系统过于复杂,指令规模过于庞大,呈现出现出20%80%的规律。的规律。CISC控制十分复杂,不规整,不符合控制十分复杂,不规整,不符合VLSI发展的发展的方向。在方向。在CISC处理机中,大量使用微程序技术以实处理机中,大量使用微程序技术以实现现CISC,硬件开销大,使用频度低,硬件开销

58、大,使用频度低 。 软硬件功能分配问题软硬件功能分配问题:在在CISC中,虽然增加了硬中,虽然增加了硬件指令,但并不能保证整个程序执行时间的缩短。件指令,但并不能保证整个程序执行时间的缩短。因为这些复杂指令要消耗较多的因为这些复杂指令要消耗较多的CPU周期数,但又周期数,但又不常用,增加了编译程序的复杂性。不常用,增加了编译程序的复杂性。2.4.3 按按RISC方向发展和改进指令系统方向发展和改进指令系统722.RISC结构设计原则:结构设计原则:(1)选择)选择使用频度高使用频度高的指令,增加少量支持操作系统和高级语的指令,增加少量支持操作系统和高级语言实现及其他功能的有用指令,言实现及其他功能的有用指令,寻址方式寻址方式也取最基本的一、两也取最基

温馨提示

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

评论

0/150

提交评论