第2章体系结构_第1页
第2章体系结构_第2页
第2章体系结构_第3页
第2章体系结构_第4页
第2章体系结构_第5页
已阅读5页,还剩175页未读 继续免费阅读

下载本文档

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

文档简介

1、指令系统概念指令系统概念2.1 数据表示数据表示2.2 寻址技术寻址技术2.3 指令格式的优化设计指令格式的优化设计2.4 指令系统的功能设计指令系统的功能设计2.5 编译器的角色编译器的角色第二章指令系统第二章指令系统指令系统概念指令系统概念在机器上直接运行的目标程序是由机器指令组成在机器上直接运行的目标程序是由机器指令组成的。的。指令系统是计算机所有机器指令的集合,是软硬指令系统是计算机所有机器指令的集合,是软硬件的之间的主要分界面。件的之间的主要分界面。主要研究指令格式、数主要研究指令格式、数据表示和寻址方式据表示和寻址方式硬件设计人员实现指令系统,软件设计人员使用硬件设计人员实现指令系

2、统,软件设计人员使用指令系统编制软件,指令系统设计由软件和硬件指令系统编制软件,指令系统设计由软件和硬件设计人员共同来完成。设计人员共同来完成。指令系统与软件之间存在语义差距,目前差距越指令系统与软件之间存在语义差距,目前差距越来越大。来越大。2.1 数据表示数据表示2.1.1 数据表示与数据类型数据表示与数据类型2.1.2 浮点数据表示浮点数据表示2.1.3 操作数的大小和类型操作数的大小和类型2.1.1 数据表示与数据类型数据表示与数据类型数据表示与数据结构数据表示与数据结构确定数据表示的原则确定数据表示的原则例例2.1例例2.2数据表示与数据结构数据表示与数据结构数据表示:指计算机硬件能

3、够直接识别,可以被数据表示:指计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型,是由硬件实指令系统直接调用的那些数据类型,是由硬件实现的数据类型。现的数据类型。数据结构:指面向计算机系统软件、面向应用领数据结构:指面向计算机系统软件、面向应用领域所需处理的数据类型,是由软件实现的数据类域所需处理的数据类型,是由软件实现的数据类型。型。确定数据表示的原则确定数据表示的原则确定哪些数据类型用数据表示实现,是软确定哪些数据类型用数据表示实现,是软件与硬件的取舍问题,目的是件与硬件的取舍问题,目的是:1.缩短程序的运行时间缩短程序的运行时间2.减少减少CPU与主存储器之间的通信量与主存储器

4、之间的通信量3.数据表示具有通用性和高的利用率数据表示具有通用性和高的利用率如果用定点数据表示浮点运算如果用定点数据表示浮点运算,处理机的运算速处理机的运算速度要降低两个数量级。度要降低两个数量级。假设一台机器只有定点数据表示,定点数运算的假设一台机器只有定点数据表示,定点数运算的速度为速度为107次次/秒。秒。那么实现那么实现32位浮点数运算速度就为位浮点数运算速度就为 105次次/秒,秒,CPU与主存的通信量也增加与主存的通信量也增加100多倍多倍由此可见,对于浮点应用比较重要的计算机,由由此可见,对于浮点应用比较重要的计算机,由硬件实现浮点数据表示是必要的硬件实现浮点数据表示是必要的例例

5、2.1例例2.2实现实现A=A+B,A和和B均为均为200200的矩阵,分析向的矩阵,分析向量数据表示的作用。量数据表示的作用。解:在没有向量数据表示的计算机系统上实现,一解:在没有向量数据表示的计算机系统上实现,一般需要般需要7条指令,其中有条指令,其中有5条指令要循环条指令要循环4万次。万次。loadsi , 0load cx, 40000loop1:load R1,A:siload R2,B:siadd R1,R2store A:si,R1looploop1因此,因此,CPU与主存储器之间的通信量:与主存储器之间的通信量:取指令取指令2+540,000条,条,读或写数据读或写数据340,

6、000个,个,共要访问主存储器共要访问主存储器840,000次以上。次以上。如果有向量数据表示,只需要一条指令。如果有向量数据表示,只需要一条指令。减少访问主存减少访问主存(取指令取指令)次数:次数:540,000次次缩短程序执行时间一倍以上。缩短程序执行时间一倍以上。2.1.2 浮点数据表示浮点数据表示浮点数的表数范围浮点数的表数范围浮点数的表数精度浮点数的表数精度浮点数的表数效率浮点数的表数效率尾数的选择尾数的选择(例例2.6)浮点数格式的设计浮点数格式的设计浮点数的舍入处理浮点数的舍入处理警戒位的设置方法警戒位的设置方法浮点数的表数范围浮点数的表数范围浮点数的表示方式浮点数的表示方式浮点

7、数的存储方式浮点数的存储方式浮点数的表数范围浮点数的表数范围例例2.3例例2.4例例2.5浮点数的表示方式浮点数的表示方式一个浮点数一个浮点数N可以用如下方式表示:可以用如下方式表示:m:尾数的值,包括尾数的码制尾数的值,包括尾数的码制(原码或补码原码或补码)和数制和数制(小数或整数小数或整数)e:阶码的值,移码或补码,整数阶码的值,移码或补码,整数rm:尾数的基值,尾数的基值,2、4、8、16和和10进制等进制等re:阶码的基值,通常为阶码的基值,通常为2p:尾数长度尾数长度,当当rm=16时,时,4个二进制位才能表示一个二进制位才能表示一位尾数位尾数q:阶码长度,阶码部分的二进制位数,阶码

8、长度,阶码部分的二进制位数,p和和q均不均不包括符号位包括符号位remmN=rge,其中e = 浮点数的存储方式浮点数的存储方式这是一种浮点存储方式:这是一种浮点存储方式:其中:其中:mf为尾数的符号位为尾数的符号位ef为阶码的符号位,为阶码的符号位,e为阶码的值,为阶码的值,m为尾数的值。为尾数的值。1位1位q位p位mfefem 尾数为原码纯小数,阶码用移码整数时,尾数为原码纯小数,阶码用移码整数时, 规格化规格化浮点数浮点数N的表数范围:的表数范围: 尾数为补码,负数区间的表数范围为:尾数为补码,负数区间的表数范围为: 浮点数在数轴上的分布情况浮点数在数轴上的分布情况表数范围可近似表示为:

9、表数范围可近似表示为: 上上溢溢 下下溢溢(浮浮点点零零) 上上溢溢 - -N Nmin 负负数数区区 - -N Nmax 0 0 N Nmin 正正数数区区 N Nmax qeqerrrrrrmmpmmN- -+-11()-111rrrrmmpmmqeqerrN()qr= rmeNmax浮点数的表数范围浮点数的表数范围例例2.3:尾数用原码、小数表示,阶码用移码、:尾数用原码、小数表示,阶码用移码、 整数表示,整数表示,p23,q7,rmre2,求,求 规格化浮点数规格化浮点数N的表数范围。的表数范围。解:规格化浮点数解:规格化浮点数N的表数范围是:的表数范围是:2)21(221122327

10、7-N2)21(212723129-N 1 位 1 位 7 位 23 位 mf ef e m 注:mf为尾数的符号位,ef为阶码的符号位,e 为阶码的值,m 为尾数的值。 规格化最大正数:规格化最大正数: 0111 1111 1111 1111 1111 1111 1111 1111 规格化最小正数:规格化最小正数: 0000 0000 0100 0000 0000 0000 0000 0000 规格化最大负数:规格化最大负数: 1000 0000 0100 0000 0000 0000 0000 0000 规格化最小负数:规格化最小负数: 1111 1111 1111 1111 1111 1

11、111 1111 1111 阶码用移码表示阶码用移码表示 浮点浮点0的范围:的范围: 对于上例:对于上例: 如果阶码用补码表示,浮点如果阶码用补码表示,浮点0为:为: 0100 0000 0000 0000 0000 0000 0000 0000 浮点浮点0与机器与机器0不同,判不同,判0困难困难(与阶码有关与阶码有关)。 阶码与补码的关系阶码与补码的关系 十进制:十进制: -128 -1 0 +127 补码:补码:1000 0000 1111 1111 0000 0000 0111 1111 移码:移码:0000 0000 0111 1111 1000 0000 1111 1111mmrrN

12、eqr-12129-N例例2.4:尾数用:尾数用补码补码、小数表示,阶码用移码、小数表示,阶码用移码、 整数表示,整数表示,p23,q7,rmre2,求,求 规格化浮点数规格化浮点数N的表数范围。的表数范围。解:规格化浮点数解:规格化浮点数N在正数区的表数范围:在正数区的表数范围: N在负数区的表数范围:在负数区的表数范围:2)21(2211223277- N2)221(212823127-+-N 1 位 1 位 7 位 23 位 mf ef e m 注:mf为尾数的符号位,ef为阶码的符号位,e 为阶码的值,m 为尾数的值。 规格化最大正数:规格化最大正数: 相同相同 0111 1111 1

13、111 1111 1111 1111 1111 1111 规格化最小正数:规格化最小正数: 相同相同 0000 0000 0100 0000 0000 0000 0000 0000 规格化最大负数:规格化最大负数: 尾数尾数 -0.100 0 . 0 0001 1000 0000 0011 1111 1111 1111 1111 1111 规格化最小负数:规格化最小负数: 尾数尾数 -1.0 1111 1111 1000 0000 0000 0000 0000 0000例例2.5:尾数用:尾数用补码补码、小数表示,阶码用移码、小数表示,阶码用移码、 整数表示,整数表示,p6,q6,rm16,r

14、e2, 求规格化浮点数求规格化浮点数N表数范围是:表数范围是:解:规格化浮点数解:规格化浮点数N在正数区间的表数范围:在正数区间的表数范围: 在负数区间的表数范围:在负数区间的表数范围:16)161(1663665-N16)16161(1664663-+-N 1 位 1 位 6 位 6 位 mf ef e m 注:mf为尾数的符号位,ef为阶码的符号位,e 为阶码的值,m 为尾数的值。 规格化最大正数:相同规格化最大正数:相同 0111 1111 1111 1111 1111 1111 1111 1111 规格化最小正数:相同规格化最小正数:相同 0000 0000 0001 0000 000

15、0 0000 0000 0000 规格化最大负数:规格化最大负数: 尾数尾数 -0.0001 00. 0 0001 1000 0000 1110 1111 1111 1111 1111 1111 规格化最小负数:规格化最小负数: 尾数尾数 -1.0 1111 1111 0000 0000 0000 0000 0000 0000 产生误差的根本原因是浮点数的不连续性产生误差的根本原因是浮点数的不连续性, 误差误差产生的直接原因有两个:产生的直接原因有两个:1 两个浮点数都在浮点集内,而运算结果却可能两个浮点数都在浮点集内,而运算结果却可能不在这个浮点集内不在这个浮点集内2 数据从十进制转化为数据

16、从十进制转化为2、4、8、16进制,产生进制,产生误差。误差。 规格化浮点数的精度为:规格化浮点数的精度为:当当rm2时:时:mpprrm)1(21),(-=22212)1(),(ppp-=浮点数的表数精度浮点数的表数精度浮点数的表数效率浮点数的表数效率浮点数的表数效率定义为:浮点数的表数效率定义为: 简化表示:简化表示: 当尾数基值为当尾数基值为2时,浮点数的表数效率为:时,浮点数的表数效率为:eqmpeqmprrrrrm2212) 1(21+-=-全部浮点数个数个数可表示的规格化浮点数mmmrrr1)(-=()22125 0 %=-= 浮点数的表数效率随浮点数的表数效率随rm增大增大 当尾

17、数基值当尾数基值rm16时,浮点数的表数效率为:时,浮点数的表数效率为: 尾数基值尾数基值rm16与与rm2相比,浮点数的表数效率相比,浮点数的表数效率提高了:提高了:)2(倍875.1)16(=T()161611694%=-=例例2.6:IBM 370系列机的短浮点数表示方式,系列机的短浮点数表示方式, rm16,p6,re2,q6,尾数用原码、,尾数用原码、 小数表示,阶码用移码、整数表示。求表数小数表示,阶码用移码、整数表示。求表数 范围和表数精度,并与范围和表数精度,并与rm2时进行比较。时进行比较。解:表数精度为:解:表数精度为: 表数范围是:表数范围是: 若尾数基值若尾数基值rm2

18、,若精度不变:,若精度不变: 解得解得p21,则,则q9,它的表数范围是:,它的表数范围是: Nmax=9251222=-116226121()Nmax=622561621222121=-()p表数效率:表数效率:当当r rm m2 2时:时:1/21/25050当当r rm m4 4时:时:3/43/47575当当r rm m2 2时,规格化浮点数可以采用隐藏位时,规格化浮点数可以采用隐藏位方法表示,这时,表数效率为方法表示,这时,表数效率为100100结论:浮点数的尾数基值结论:浮点数的尾数基值r rm m取取2 2,并采用隐藏,并采用隐藏位表数方法是最佳的浮点数表示方式。这种位表数方法是

19、最佳的浮点数表示方式。这种浮点数表示方式能做到表数范围最大、表数浮点数表示方式能做到表数范围最大、表数精度最高、表数效率最好。精度最高、表数效率最好。浮点数格式的设计浮点数格式的设计尾数尾数:通常采用原码、小数表示。通常采用原码、小数表示。采用原码制表示:加减法比补码表示复杂,乘除采用原码制表示:加减法比补码表示复杂,乘除法比补码简单,表示非常直观。法比补码简单,表示非常直观。采用小数表示能简化运算,特别是乘除法运算。采用小数表示能简化运算,特别是乘除法运算。尾数的基值尾数的基值rm选择选择2阶码阶码:一般机器都采用整数、移码表示。一般机器都采用整数、移码表示。采用移码表示的主要原因是:浮点采

20、用移码表示的主要原因是:浮点0与机器与机器0一致。一致。阶码进行加减运算时,移码的加减法运算要比补阶码进行加减运算时,移码的加减法运算要比补码复杂码复杂阶码的基值阶码的基值re取取2浮点数的舍入处理浮点数的舍入处理舍入处理的原因及要解决的问题舍入处理的原因及要解决的问题恒舍法、恒置法、下舍上入法恒舍法、恒置法、下舍上入法R R* *舍入法舍入法查表法查表法五种舍入方法的主要性能比较五种舍入方法的主要性能比较关于舍入方法的主要结论关于舍入方法的主要结论舍入处理的原因及要解决的问题舍入处理的原因及要解决的问题浮点数要进行舍入处理的原因是:浮点数要进行舍入处理的原因是:十进制数转化为浮点数时,有效位

21、长度超过给十进制数转化为浮点数时,有效位长度超过给定的尾数字长。定的尾数字长。两个浮点数的加减乘除结果,尾数长度超过给两个浮点数的加减乘除结果,尾数长度超过给定的尾数字长。定的尾数字长。舍入处理要解决的问题是:把规格化尾数的舍入处理要解决的问题是:把规格化尾数的pg位处理成只有位处理成只有p位。位。舍入方法的主要性能标准是:绝对误差小、积累舍入方法的主要性能标准是:绝对误差小、积累误差小、容易实现误差小、容易实现进行舍入处理时必须先规格化,然后再舍入,同进行舍入处理时必须先规格化,然后再舍入,同时在计算积累误差时,要同时考虑正数和负数区时在计算积累误差时,要同时考虑正数和负数区恒舍法、恒置法、

22、下舍上入法恒舍法、恒置法、下舍上入法恒舍法又称截断法、必舍法等,即直接丢弃多余恒舍法又称截断法、必舍法等,即直接丢弃多余的位,实现非常容易,但误差大,正负区误差相的位,实现非常容易,但误差大,正负区误差相反,但同一区误差积累大。反,但同一区误差积累大。恒置法又称恒置恒置法又称恒置r/2法、冯诺依曼法,是把有效字法、冯诺依曼法,是把有效字长的最低一位置成长的最低一位置成r/2,实现比较容易,积累误差,实现比较容易,积累误差较小,正负区误差平衡,精度比较低。较小,正负区误差平衡,精度比较低。下舍上入法下舍上入法(4舍舍5入法、入法、0舍舍1入法等入法等),精度高,精度高,积累误差小,正负区误差完全

23、平衡,实现起来比积累误差小,正负区误差完全平衡,实现起来比较困难。较困难。R R* *舍入法只有少数巨型机采用,没有积累误差,精度舍入法只有少数巨型机采用,没有积累误差,精度很高。实现很复杂。判断很高。实现很复杂。判断g g是否为是否为10.010.0,采用下舍上,采用下舍上入法或恒置法,如果溢出,可能要再次右规格化。入法或恒置法,如果溢出,可能要再次右规格化。R*舍入法舍入法舍入方法舍入方法 舍入前舍入前( (p+g 位位) 舍入后舍入后( (p 位位) 误差情况误差情况 下舍上入法下舍上入法 下舍上入法下舍上入法 下舍上入法下舍上入法 下舍上入法下舍上入法 恒置恒置 1 1 法法 恒置恒置

24、 1 1 法法 下舍上入法下舍上入法 下舍上入法下舍上入法 下舍上入法下舍上入法 0.xxx.xx|00.00 0.xxx.xx|00.01 0.xxx.xx|0.010 0.xxx.xx|01.11 0.xxx.x0|10.00 0.xxx.x1|10.00 0.xxx.xx|10.01 0.xxx.xx|11.10 0.xxx.xx|11.11 0.xxx.xx 0.xxx.xx 0.xxx.xx 0.xxx.xx 0.xxx.x1 0.xxx.x1 0.xxx.xx2-p 0.xxx.xx2-p 0.xxx.xx2-p 0 2-p-g 2-p-g+1 2-p-1(12-g+1) 2-p-

25、1 2-p-1 2-p-1(12-g+1) 2-p-g+1 2-p-g 查表法又称查表法又称ROMROM舍入法,舍入法,PLAPLA舍入法等,通过修改舍入法等,通过修改ROMROM或或PLAPLA,使积累误差达到平衡。继承了下舍上入法精度高、,使积累误差达到平衡。继承了下舍上入法精度高、积累误差小优点,同时又克服了实现困难缺点积累误差小优点,同时又克服了实现困难缺点查表法查表法 p 位位 g 位位 mx: m: 查表法的原理框图查表法的原理框图 (p-n)位位 n 位位 1位位 g-1 位位 ROM 或或 PLA 2n+1字字 n 位位 (p-n)位位 n 位位 通过精心设计通过精心设计ROM

26、ROM中所存储的内容,针对各种不同应中所存储的内容,针对各种不同应用领域,使积累误差尽可能小。用领域,使积累误差尽可能小。ROM地址 舍入前(pg位) 舍入后(p位) 误差情况 000 001 010 011 100 101 110 111 xxx00|0 xx x xxx00|1xx x xxx01|0 xx x xxx01|1xx x xxx10|0 xx x xxx10|1xx x xxx11|0 xx x xxx11|1xx x xxx00 xxx01 xxx01 xxx10 xxx10 xxx11 xxx11 xxx11 2-p-1(1-2-g+1)0 2-p-g2-p-1 2-p-

27、1(1-2-g+1)0 2-p-g2-p-1 2-p-1(1-2-g+1)0 2-p-g2-p-1 2-p-1(1-2-g+1)0 2-p(1-2-g)2-p-1 2-p-1 2-p-1 2-p-1 2-p-1(2g-1) 五种舍入方法的主要性能比较五种舍入方法的主要性能比较 舍入方法舍入方法 正数区的误差范围正数区的误差范围 正数区积累误差正数区积累误差 实现难易程度实现难易程度 恒舍法恒舍法 - -2-p(1-2-g) 0 2-p-1(2g-1) 最简单最简单 恒置法恒置法 - -2-p(1-2-g) 2-p 2-p 很简单很简单 下舍上入法下舍上入法 - -2-p-1(1-2-g+1)

28、2-p-1 2-p-1 很复杂很复杂 R R* * 舍入法舍入法 - -2-p-1 2-p-1 0 最复杂最复杂 查表法查表法 - -2-p(1-2-g) 2-p-1 2-p-1(2n-2g) 一般一般 恒置法虽有少量的积累误差,且损失一位精度,但恒置法虽有少量的积累误差,且损失一位精度,但由于实现很容易,普遍在小型微型机中使用。由于实现很容易,普遍在小型微型机中使用。R R* *舍入法是唯一积累误差能达到完全平衡的舍入方舍入法是唯一积累误差能达到完全平衡的舍入方法,但由于实现非常复杂,仅在少数对误差要求非法,但由于实现非常复杂,仅在少数对误差要求非常高的机器中采用。常高的机器中采用。下舍上入

29、法只有少量积累误差,且精度比较高,但下舍上入法只有少量积累误差,且精度比较高,但实现也很复杂,用于软件实现的算法中。实现也很复杂,用于软件实现的算法中。查表法实现比较容易,积累误差很小,且可以通过查表法实现比较容易,积累误差很小,且可以通过改变改变ROMROM或或PLAPLA中的内容来修正积累误差,是一种很中的内容来修正积累误差,是一种很有前途的舍入方法。有前途的舍入方法。关于舍入方法的主要结论关于舍入方法的主要结论警戒位的设置方法警戒位的设置方法在规定的尾数字长之外,运算器中的累加器需要在规定的尾数字长之外,运算器中的累加器需要另外增加的长度称为警戒位(另外增加的长度称为警戒位(Guard

30、Bit)警戒位在舍入和左规时使用警戒位在舍入和左规时使用设置警戒位的原因是:设置警戒位的原因是:不设置警戒位,可能出现很大的误差不设置警戒位,可能出现很大的误差不设置警戒位,可能造成完全错误的运算结果不设置警戒位,可能造成完全错误的运算结果 例例2.8:0.10000000200.111111012-1求和求和: 0. .00000001 20 0. .10000000 20 对阶:对阶:1. .10000001 20 左规:左规: 0. .10000000 2-7 求和:求和: 0. .00000001 120 0. .10000000 对阶:对阶:1. .10000001 20 120 左

31、规:左规: 0. .11000000 2-7 例例2.9:0.100021250.11112124求和:求和: 0. .0000 12125 左规:左规: 0. .1000 2121 0. .1000 对阶:对阶: 1. .1000 2125 12125 求和:求和: 0. .0000 2125 0. .1000 2125 对阶:对阶: 1. .1000 2125 各种情况下所需要的警戒位位数各种情况下所需要的警戒位位数 用于左规用于左规 用于舍入用于舍入 加减法加减法 1 1 位位 乘法乘法 1 1 位位 除法除法 0 0 位位 右规右规 0 0 位位 十化二十化二 0 0 位位 总计总计

32、恒舍法恒舍法 0 0 位位 1 1 1 1 0 0 0 0 0 0 1 1 位位 恒置法恒置法 - -1 1 位位 0 0 0 0 - -1 1 - -1 1 - -1 1 0 0 位位 下舍上入法下舍上入法 1 1 位位 2 2 2 2 1 1 1 1 1 1 2 2 位位 查表法查表法 1 1 位位 2 2 2 2 1 1 1 1 1 1 2 2 位位 R R* *舍入法舍入法 2 2 位位 3 3 3 3 2 2 2 2 2 2 3 3 位位 2.1.3 操作数的大小和类型操作数的大小和类型一般处理机中的数据表示方法:一般处理机中的数据表示方法:数据存储单元数据存储单元(寄存器、主存储器

33、、外存储器等寄存器、主存储器、外存储器等)只存放纯数据只存放纯数据数据类型通过指令中的操作码来解释数据类型通过指令中的操作码来解释解释同一种操作解释同一种操作(如加法如加法)有很多条指令。有很多条指令。自定义数据表示方法:自定义数据表示方法:数据上有一个由硬件解释的表示数据类型的符号数据上有一个由硬件解释的表示数据类型的符号包括带标志符的数据表示方法包括带标志符的数据表示方法(针对一个数据,如针对一个数据,如R-2计算机计算机)和数据描述符表示法和数据描述符表示法(针对一组数据,针对一组数据,如如B-6700计算机计算机)接近于高级语言,现在的计算机已很难见到。接近于高级语言,现在的计算机已很

34、难见到。常见的数据的类型包括:常见的数据的类型包括:定点:补码表示定点:补码表示浮点:浮点:IEEE754标准标准字符:字符:ASCII和和Unicode编码编码进位制:进位制:2进制,进制,10进制进制( BCD码码)、16进制等进制等寻址方式:直接、间接、相对及寄存器寻址寻址方式:直接、间接、相对及寄存器寻址数据的功能:地址、数值、控制字、标志等数据的功能:地址、数值、控制字、标志等数据字长:字、半字、双字、字节等,下面会数据字长:字、半字、双字、字节等,下面会给出基准测试程序中数据访问的大小分布给出基准测试程序中数据访问的大小分布基准测试程序中数据访问的大小分布基准测试程序中数据访问的大

35、小分布2.2 寻址技术寻址技术寻找操作数及其他信息地址的技术称为寻寻找操作数及其他信息地址的技术称为寻址技术,主要包括:编址方式、寻址方式址技术,主要包括:编址方式、寻址方式和定位方式。和定位方式。寻址技术针对的对象为寄存器、主存储器、寻址技术针对的对象为寄存器、主存储器、堆栈和输入输出设备,用以分析各种寻址堆栈和输入输出设备,用以分析各种寻址技术的优缺点,如何选择和确定寻址技术。技术的优缺点,如何选择和确定寻址技术。2.2.1 编址方式编址方式2.2.2 寻址方式寻址方式2.2.3 定位方式定位方式2.2.1 编址方式编址方式编址方式是指对各种存储设备进行编码的方法。编址方式是指对各种存储设

36、备进行编码的方法。常用的编址单位:字编址、字节编址、位编址、常用的编址单位:字编址、字节编址、位编址、块编址等。块编址等。一般:字节编址,字访问,对于访问大于一个一般:字节编址,字访问,对于访问大于一个字节的数据必须对齐字节的数据必须对齐(边界对准边界对准)部分机器:位编址,字访问部分机器:位编址,字访问辅助存储器:块编址辅助存储器:块编址零地址空间个数:零地址空间个数:三个零地址空间:通用寄存器、主存储器和输入三个零地址空间:通用寄存器、主存储器和输入输出设备均独立编址输出设备均独立编址两个零地址空间:主存储器与输入输出设备统一两个零地址空间:主存储器与输入输出设备统一编址编址一个零地址空间

37、:所有存储设备统一编址,最低一个零地址空间:所有存储设备统一编址,最低端是通用寄存器,最高端是输入输出设备,中间端是通用寄存器,最高端是输入输出设备,中间为主存储器为主存储器隐含编址方式隐含编址方式(堆栈计算机堆栈计算机),实际上没有零地址,实际上没有零地址空间:堆栈空间:堆栈输入输出设备的编址需要与硬件相适应和配合:输入输出设备的编址需要与硬件相适应和配合:一台设备一个地址:必须通过指令来识别该输入一台设备一个地址:必须通过指令来识别该输入输出设备上的有关寄存器,需要为设备提供单独输出设备上的有关寄存器,需要为设备提供单独的操作码;的操作码;一台设备两个地址:一个地址是数据寄存器,一一台设备

38、两个地址:一个地址是数据寄存器,一个地址是状态个地址是状态/控制寄存器;控制寄存器;一台设备多个地址:最灵活但编程最复杂。一台设备多个地址:最灵活但编程最复杂。并行存储器的编址技术:并行存储器的编址技术:高位交叉编址:主要目的是用来扩大存储器容量。高位交叉编址:主要目的是用来扩大存储器容量。低位交叉编址:主要目的是提高存储器速度。低位交叉编址:主要目的是提高存储器速度。2.2.2 寻址方式寻址方式寻址方式:寻找操作数及数据存放单元寻址方式:寻找操作数及数据存放单元的方法。的方法。支持更多的寻址方式能减少目标程序的支持更多的寻址方式能减少目标程序的指令数量,但会增加复杂度和指令数量,但会增加复杂

39、度和CPI立即寻址方式立即寻址方式存储器寻址方式存储器寻址方式间接寻址方式与变址寻址方式间接寻址方式与变址寻址方式寄存器寻址方式寄存器寻址方式堆栈寻址方式堆栈寻址方式立即寻址方式立即寻址方式数据比较短,放到指令里面,可以看作存储器寻数据比较短,放到指令里面,可以看作存储器寻址的一种特殊形式。下图给出了一个指令系统中址的一种特殊形式。下图给出了一个指令系统中立即数的使用频率:立即数的使用频率:存储器寻址方式存储器寻址方式面向主存储器的指令格式:面向主存储器的指令格式:OPCMOPCM,MOPCM,M,M存储器寻址方式通常是数据对齐的,不对齐会导存储器寻址方式通常是数据对齐的,不对齐会导致硬件的复

40、杂性,即使是支持不对齐的机器,对致硬件的复杂性,即使是支持不对齐的机器,对齐的指令也会运行的更快齐的指令也会运行的更快存储器存储数据包括有存储器存储数据包括有2种字节次序:大端模式种字节次序:大端模式和小端模式和小端模式存储器和寄存器操作模式大约各占操作数访问的存储器和寄存器操作模式大约各占操作数访问的一半。一半。各种存储器寻址方式的使用频率各种存储器寻址方式的使用频率相对寻址的位移量相对寻址的位移量间接寻址方式与变址寻址方式间接寻址方式与变址寻址方式目的相同:都是为了解决操作数地址的修改问题目的相同:都是为了解决操作数地址的修改问题,都能做到不改变程序而修改操作数地址。都能做到不改变程序而修

41、改操作数地址。原则上,一种处理机中只需设置间址寻址方式与原则上,一种处理机中只需设置间址寻址方式与变址寻址方式中的任何一种即可变址寻址方式中的任何一种即可例例2.8:一个由:一个由N个元素组成的数组,已经存放在个元素组成的数组,已经存放在起始地址为起始地址为AS的主存连续单元中,现要把它搬到的主存连续单元中,现要把它搬到起始地址为起始地址为AD的主存连续单元中。不必考虑可能的主存连续单元中。不必考虑可能出现的存储单元的重叠问题。为了编程简单,采出现的存储单元的重叠问题。为了编程简单,采用一般的两地址指令编写程序。用一般的两地址指令编写程序。 解:用间接寻址方式编写程序如下:解:用间接寻址方式编

42、写程序如下: start:move asr,asi;保存源数组的起始地址保存源数组的起始地址 move adr,adi;保存目标数组起始地址保存目标数组起始地址 move num, cnt;保存数据的个数保存数据的个数loop:move asi, adi ;用间址寻址方式传送数据用间址寻址方式传送数据 incasi;源数组的地址增量源数组的地址增量incadi;目标数组的地址增量目标数组的地址增量deccnt;个数减个数减1bgtloop;测试测试n个数据是否传送完个数据是否传送完halt;停机停机asr:as;源数组的起始地址源数组的起始地址adr:ad;目标数组的起始地址目标数组的起始地址

43、num:n;需要传送的数据个数需要传送的数据个数asi:0;当前正在传送的源数组地址当前正在传送的源数组地址adi:0;当前正在传送的源数组地址当前正在传送的源数组地址cnt:0;剩余数据的个数剩余数据的个数用变址寻址方式编写程序如下:用变址寻址方式编写程序如下:start: move as,x;源数组起址送变址寄存器源数组起址送变址寄存器move num, cnt;保存数据个数,保证再入性保存数据个数,保证再入性loop: move (x), ad-as(x) ;ad-as位地址偏移量,位地址偏移量,;在汇编时计算在汇编时计算incx;增量变址寄存器增量变址寄存器deccnt;个数减个数减1

44、bgtloop;测试测试n个数据是否传送完成个数据是否传送完成halt;停机停机num: n;需要传送的数据个数需要传送的数据个数cnt:0;剩余数据的个数剩余数据的个数主要优缺点比较及优缺点主要优缺点比较及优缺点对于程序员,两种寻址方式的主要差别是:对于程序员,两种寻址方式的主要差别是:间址寻址方式:间接地址在主存中,无偏移量间址寻址方式:间接地址在主存中,无偏移量变址寻址方式:基地址在变址寄存器中,有偏变址寻址方式:基地址在变址寄存器中,有偏移量移量主要优缺点比较:主要优缺点比较:采用变址寻址方式编写的程序简单、易读。采用变址寻址方式编写的程序简单、易读。实现的难易程度:间址寻址方式容易实

45、现的难易程度:间址寻址方式容易指令的执行速度:间址寻址方式慢指令的执行速度:间址寻址方式慢对数组运算的支持:变址寻址方式比较好对数组运算的支持:变址寻址方式比较好自动变址:在访问间接地址过程中,地址自动增减自动变址:在访问间接地址过程中,地址自动增减面向寄存器的指令形式:面向寄存器的指令形式:OPCROPCR,ROPCR,R,ROPCR,M主要优点:指令字长短、指令执行速度快、支持主要优点:指令字长短、指令执行速度快、支持向量和矩阵运算并能提高其速度向量和矩阵运算并能提高其速度主要缺点:现场切换困难、硬件复杂,如果寄存主要缺点:现场切换困难、硬件复杂,如果寄存器不对称,不利于优化编译器不对称,

46、不利于优化编译寄存器寻址方式寄存器寻址方式堆栈的寻址方式堆栈的寻址方式面向堆栈的指令格式:面向堆栈的指令格式: OPCOPCM主要优点:主要优点:支持高级语言,有利于编译程序支持高级语言,有利于编译程序(逆波兰式逆波兰式)节省存储空间节省存储空间(指令短指令短)支持程序的嵌套和递归调用,支持中断处理支持程序的嵌套和递归调用,支持中断处理主要缺点:主要缺点:运算速度比较低,一般将栈顶部分设计成一个运算速度比较低,一般将栈顶部分设计成一个高速的寄存器堆高速的寄存器堆2.2.3 定位方式定位方式把指令和数据中的逻辑地址把指令和数据中的逻辑地址( (相对地址相对地址) )转换成主转换成主存储器的物理地

47、址存储器的物理地址( (绝对地址绝对地址) ),这一转换过程称,这一转换过程称为程序的定位。程序需要定位的原因在于:为程序的定位。程序需要定位的原因在于:1 由于程序的独立性,编译程序一般把目标程序由于程序的独立性,编译程序一般把目标程序安排在从零开始的逻辑地址空间;安排在从零开始的逻辑地址空间;2 程序的模块化设计也要求运行时再进行装配定程序的模块化设计也要求运行时再进行装配定位;位;3 数据结构在程序运行过程中,其大小往往是变数据结构在程序运行过程中,其大小往往是变化的;化的;4 有些程序本身很大,大于分配给它的主存物理有些程序本身很大,大于分配给它的主存物理空间。空间。三种定位方式:三种

48、定位方式:直接定位:在程序装入主存储器之前,程序中的直接定位:在程序装入主存储器之前,程序中的指令和数据的主存物理就已经确定了的称为直接指令和数据的主存物理就已经确定了的称为直接定位方式。定位方式。静态定位:在程序装入主存储器的过程中随即进静态定位:在程序装入主存储器的过程中随即进行地址变换,确定指令和数据的主存物理地址的行地址变换,确定指令和数据的主存物理地址的称为静态定位方式。称为静态定位方式。动态定位:在程序执行过程中,当访问到相应的动态定位:在程序执行过程中,当访问到相应的指令或数据时才进行地址变换,确定指令和数据指令或数据时才进行地址变换,确定指令和数据的主存物理地址的称为动态定位方

49、式。的主存物理地址的称为动态定位方式。2.3 指令格式的优化设计指令格式的优化设计2.3.1 指令的组成指令的组成2.3.2 操作码的优化设计操作码的优化设计2.3.3 地址码的优化设计地址码的优化设计2.3.1 指令的组成指令的组成一般的指令主要由两部分组成:一般的指令主要由两部分组成:操作码和地址码操作码和地址码地址码通常包括三部分内容:地址码通常包括三部分内容:地址:地址码、立即数、寄存器、变址寄存器地址:地址码、立即数、寄存器、变址寄存器地址的附加信息:偏移量、跳距、块长度等地址的附加信息:偏移量、跳距、块长度等寻址方式:直接寻址、间接寻址、立即数寻址、寻址方式:直接寻址、间接寻址、立

50、即数寻址、变址寻址、相对寻址、寄存器寻址变址寻址、相对寻址、寄存器寻址 操作码操作码( (OPCOPC) ) 地址码地址码( (A A) ) 操作码主要包括两部分内容操作码主要包括两部分内容操作种类:加、减、乘、除、数据传送、操作种类:加、减、乘、除、数据传送、移位、转移、输入输出、程序控制、处移位、转移、输入输出、程序控制、处理机控制等理机控制等操作数描述:操作数描述:数据的类型:定点数、浮点数、复数、数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量字符、字符串、逻辑数、向量进位制:进位制:2进制、进制、10进制、进制、16进制进制数据字长:字、半字、双字、字节数据字长:字、半字

51、、双字、字节2.3.2 操作码的优化表示操作码的优化表示改进操作码编码方式的目的是节省程序存储空间改进操作码编码方式的目的是节省程序存储空间例如:宝来公司例如:宝来公司(Borroughs)的的B-1700机机操作码的三种编码方法:操作码的三种编码方法:2.3.2.1 固定长操作码固定长操作码2.3.2.2 Huffman编码法编码法2.3.2.3 扩展编码法扩展编码法操作码编码方式整个操作系统所用指令的操作码总位数改进的百分比8位定长编码4-6-10扩展编码Huffman编码301,248184,966172,346039%43%2.3.2.1 固定长操作码固定长操作码就是所有指令使用相同的

52、代码位数,其最小码长等就是所有指令使用相同的代码位数,其最小码长等于:于:式中式中 是平均码长,是平均码长, 是第是第i种指令的码长,种指令的码长,n是指是指令总数。令总数。优点:规整,译码简单优点:规整,译码简单缺点:浪费信息量缺点:浪费信息量(操作码的总长位数增加操作码的总长位数增加)nlLi2log=Lil例例:已知已知 n = 15,求定长编码的最小平均码长。,求定长编码的最小平均码长。解:解:如:如:IBM公司的大中型机:最左边公司的大中型机:最左边8位为操作码位为操作码Intel公司的安腾公司的安腾(Intanium)处理机:处理机:14位定长位定长操作码操作码许多许多RISC处理

53、机采用定长操作码处理机采用定长操作码415loglog22=nL2.3.2.2 Huffman编码法编码法基本原理基本原理最优最优huffman编码法编码法 huffman编码法编码法(最小概率合并法最小概率合并法)例例p92基本原理基本原理1952年由年由Huffman首先提出首先提出最早用于电报报文编码,如最早用于电报报文编码,如e,t 等使用频度高,等使用频度高,用短编码;用短编码;q,x 使用频度低,用长编码;使用频度低,用长编码;基本原理基本原理-当用当用n个长度不等的代码分别代表个长度不等的代码分别代表n种发生概率不等的事件时,按照短代码给高概率种发生概率不等的事件时,按照短代码给

54、高概率事件、把长代码给低概率事件的原则分配,可使事件、把长代码给低概率事件的原则分配,可使平均码长达到最低。平均码长达到最低。使用频度高的指令,短编码使用频度高的指令,短编码使用频度低的指令,长编码使用频度低的指令,长编码最优最优huffman编码法编码法操作码的最短平均长度可通过下式计算:操作码的最短平均长度可通过下式计算:其中:其中:Pi表示第表示第i种操作码在程序中出现的概率种操作码在程序中出现的概率固定长操作码相对于固定长操作码相对于Huffman操作码的信息冗余操作码的信息冗余量为:量为:iniippH=-=12lognppRniii212loglog1=-=huffman编码法编码

55、法(最小概率合并法最小概率合并法)利用利用Huffman树进行操作码编码的方法。树进行操作码编码的方法。把所有指令按照操作码在程序中出现的概率,自左把所有指令按照操作码在程序中出现的概率,自左向右从大到小排列好。向右从大到小排列好。从最右边选取两个概率最小的结点合并成一个概率从最右边选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合。没有合并的结点一起形成新结点集合。在新结点集合中选取两个概率最小的结点进行合并,在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合

56、并完毕。如此继续进行下去,直至全部结点合并完毕。最后得到的根结点的概率值为最后得到的根结点的概率值为1。每个结点都有两个分支,分别用一位代码每个结点都有两个分支,分别用一位代码“0” 和和“1”表示。表示。从根结点开始,沿尖头所指方向,到达属于该指令从根结点开始,沿尖头所指方向,到达属于该指令的概率结点,把沿线所经过的代码组合起来得到这的概率结点,把沿线所经过的代码组合起来得到这条指令的操作码编码。条指令的操作码编码。例例p92假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码,如种不同的操作码,如果采用固定长操作码需要果采用固定长操作码需要3位。已知各种操作码位。已知各种操作码在程

57、序中出现的概率如下表,计算采用在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码编码法的操作码平均长度,并计算固定长操作码和和Huffman操作码的信息冗余量。操作码的信息冗余量。使用最小概率合并法:使用最小概率合并法:指令I1概率0.45I20.30I30.15I40.05I50.03I60.01I70.010.450.300.150.050.030.010.011.000.550.250.100.050.02010101010101解解指令序号概率Huffman编码法操作码长度I10.4501位I20.30102位I30.151103位I40.051

58、1104位I50.03111105位I60.011111106位I70.011111116位采用采用Huffman编码法所得到的操作码的平均长度编码法所得到的操作码的平均长度=0.451+0.302+0.153+0.054+0.035+0.016+0.016=1.97(位位)采用最优采用最优Huffman编码法,操作码的最短平均长度编码法,操作码的最短平均长度=0.451.152+0.301.737+0.152.737+0.054.322+0.035.059+0.016.644+0.016.644=1.95(位位)采用采用3位固定长操作码的信息冗余量为位固定长操作码的信息冗余量为:%35395

59、. 117log12-=-=HRHuffman编码法的信息冗余量仅为:编码法的信息冗余量仅为:与与3位定长操作码的冗余量位定长操作码的冗余量35%相比要小得多相比要小得多Huffman操作码的优点:平均长度最短,信息的操作码的优点:平均长度最短,信息的冗余量最小;冗余量最小; Huffman操作码的主要缺点:操作码的主要缺点:操作码长度很不规整,硬件译码困难操作码长度很不规整,硬件译码困难与地址码共同组成固定长的指令比较困难与地址码共同组成固定长的指令比较困难%0 . 197. 195. 11-=R2.3.2.3 扩展编码法扩展编码法扩展编码法概述扩展编码法概述等长扩展编码法等长扩展编码法不等

60、长扩展编码法不等长扩展编码法扩展编码法概述扩展编码法概述由固定长操作码与由固定长操作码与Huffman编码法相结合形成编码法相结合形成例例p92改为改为1-2-3-5扩展编码法扩展编码法操作码最短平均长度为:操作码最短平均长度为:H =0.451+0.302+0.153+(0.05+0.03+0.01+0.01)5=2.00信息冗余量为:信息冗余量为:%5 . 200. 295. 11=-=R例例p92改为改为2-4等长扩展编码法等长扩展编码法操作码最短平均长度操作码最短平均长度:H =(0.45+0.30+0.15) 2+(0.05+0.03+0.01+0.01)4=2.20信息冗余量为:信

温馨提示

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

评论

0/150

提交评论