计算机系统结构 第2章

上传人:kms****20 文档编号:56762388 上传时间:2018-10-15 格式:PPT 页数:53 大小:568KB
返回 下载 相关 举报
计算机系统结构 第2章_第1页
第1页 / 共53页
计算机系统结构 第2章_第2页
第2页 / 共53页
计算机系统结构 第2章_第3页
第3页 / 共53页
计算机系统结构 第2章_第4页
第4页 / 共53页
计算机系统结构 第2章_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《计算机系统结构 第2章》由会员分享,可在线阅读,更多相关《计算机系统结构 第2章(53页珍藏版)》请在金锄头文库上搜索。

1、第2章 指令系统,指令格式优化设计,指令格式的优化如何用最短的二进制位数来表示指令的操作信息和地址信息,使指令的平均字长最短优化设计的指令集减少了程序的总位数,减少了程序运行的时空开销,从而提高了系统的性能,操作码优化编码的评价方法,平均码长位冗余量,其中pi是码点i的使用频度,li是码点i的编码长度,信息熵,理论上的最短 平均编码长度,操作码优化设计,定长(等长)编码所有指令的操作码长度都是相等的如果需要编码的操作码有n个,则定长操作码的位数最少需要 位定长编码的优缺点规整性好解码简单占用空间大,哈夫曼编码法使用哈夫曼算法构造哈夫曼树哈夫曼算法1.每次从结点集合中选择出2个频度最小的结点,将

2、其 合并成频度为这两个频度之和的父结点2.若结点集不为空集,就将生成的新结点放到结点集合中,否则结束得到一棵哈夫曼树重复第1步,直到结点集成为一个空集,对哈夫曼树中的每个结点的两个分支分别用0和1标识,得到从根结点到每个叶结点的路径即该叶结点的哈夫曼编码优点比定长编码的平均码长小缺点由于码长种类较多,不利于用硬件对操作码进行译码操作码很难与地址码配合以形成长度规整的指令格式,对于同一个频度分布,应用哈夫曼算法可能生成不同的哈夫曼树,因此,由不同的哈夫曼树得出各码点的编码就不相同即对于相同的频度分布,得到的哈夫曼编码不唯一,但平均码长一定唯一。,例1,一个处理机有I1I10共10条指令,经统计,

3、各 指令在程序中的使用频度分别为:p1=0.25, p2=0.20,p3=0.15,p4=0.10,p5=0.08, p6=0.08,p7=0.05,p8=0.04,p9=0.03, p10=0.02 (1)计算这10条指令的操作码编码的最短平均码长。 (2)写出这10条指令的操作码的哈夫曼编码,并计算编码的平均码长和信息冗余量。,H=pilog2pi= ( 0.25log20.25+0.20log20.20+0.15log20.15+0.10log20.10+0.08log20.08+0.08log20.08+0.05log20.05+0.04log20.04+0.03log20.03+0.

4、02log20.02 )=2.96 ( 位 ),1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,l =pili= 0.25*2+0.20*2+0.15*3+0.10*3+0.08*4+0.08*4+0.05*5+0.04*5+0.03*5+0.02*5= 2.99(位),平均码长为:,信息冗余量为:,R=1-H/l=1-2.96/2.99=1.0%,扩展编码法,扩展编码限定使用少数几种码长,频率高的码点用短码表示,频率低的码点用长码表示任何短码都不能是任何长码的前缀,否则会造成解码的不惟一性需要留下若干个短码作为长码的扩展标志,以便长码在扩展编码时使用,扩展编码的表示法

5、码长表示法:用短横线前后的数字分别表示短码码长和长码码长2-4-6 表示编码有3种码长,分别是2位、4位和6位码点数表示法:用斜线前后的数字分别表示短码码点个数和长码码点个数3/6/4 表示3种码长,最短码长的码点个数是3,最长码长的码点个数是4,码点总数是13,选择多少个短码作为长码扩展标志的原则根据需要编码的短码码点个数和长码码点个数进行选择尽量减少编码可表示的冗余码点数,15/15/15编码法,8/64/512编码法,取决于所设计的系统中 指令的使用频度的分布。,使平均码长pili最短,例1(续),接上例,采用3/7扩展编码和2/8扩展编码编写 这10条指令的操作码,并分别计算平均码长和

6、 信息冗余量。问哪一种扩展编码较好?说明其 理由。,l3/7 =pili= (0.25+0.20+0.15)*2+(0.10+0.08+0.08+0.05+0.04+0.03+0.02)*5= 3.2(位),平均码长为:,信息冗余量为:,R3/7=1-H/l=1-2.96/3.2=7.5% R2/8=1-H/l=1-2.96/3.1=4.5%,l2/8 =pili= (0.25+0.20)*2+(0.15+0.10+0.08+0.08+0.05+0.04+0.03+0.02)*4= 3.1(位),指令字格式优化设计的措施,采用扩展操作码,以缩短操作码的平均码长采用诸如基址、变址、相对寻址、寄存

7、器寻址、寄存器间接寻址等多种寻址方式,以缩短需要在指令中表示的地址码长度,但不减小地址码寻址空间的大小,基址寻址,基变址寻址,指令集采用零地址、一地址、二地址和三地址等多种地址制,且让常用的短操作码与多地址字段配合,长操作码与少地址字段配合,定长地址码带来的问题,li:操作码优化表示的长度,定长地址码发挥不出操作码优化表示的作用,在同种地址制的若干指令中采用多种地址表示形式,如寄存器-寄存器型、寄存器-主存型、主存-主存型等,让每种地址字段有多种长度,使长度不等的操作码与地址码配合成规整长度的指令字,维持指令字在存储器中按整数边界存储的前提下,使用多种不同的指令长度。整数边界存储要求指令字长应

8、是主存存储字长的整数倍,如果主存按位编址,指令字又不按整数边界存储, 而是逐条紧挨存储,操作码的优化表示会直接带来 程序总位数的减少。有些指令需要两个主存周期才 能取出,使机器速度明显下降。,例2,某模型机有9条指令,其使用频度分别为: ADD: 30% SUB: 24% LOD: 6% STO: 7% JMP: 7% SHR: 2% ROL: 3% MOV:20% STP: 1% 要求有2种指令字长,且都是二地址指令。采用扩展 编码,并限制只能有2种操作码码长。设该机有若干 个通用寄存器,主存宽度为16位,按字节编址,采用 按整数边界存储,任何指令都在1个主存周期中取得。 短指令为寄存器-寄

9、存器型,长指令为寄存器-主存型。 主存地址能变址寻址。,(1)仅根据使用频度,不考虑其他要求,设计出哈夫曼编码,并计算平均码长。 (2)根据给出的全部要求,设计优化实用的操作码编码,并计算平均码长。 (3)画出该机的2种指令字的格式,标出各字段的位数。该机允许使用多少个可编址的通用寄存器?访存变址寻址的最大相对位移量是多少字节?,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,哈夫曼编码的平均码长为:,l=pili =2.61(位),根据题目要求,指令有2种字长,主存宽度为16位,按 字节编址,采用按整数边界存储,任何指令都在1个主 存周期取得,那么,短指令字长只能是8位,长指

10、令字 长只能是16位。指令都是二地址指令,短指令为寄存器 -寄存器型,长指令为寄存器-主存型,且主存地址应能变址寻址:,根据题目要求,较实用的操作码编码是扩展编码。 采用2-5扩展编码,平均码长为:,l=pili =2.78(位),该机可使用的可编址通用寄存器的个数最多为8个。 访存变址寻址的最大相对位移量为32字节。,精简指令集计算技术,RISC的发展RISC是20世纪80年代提出的一种新的设计思想CISC结构的特点是强化指令系统功能,这必然导致机器的结构特别是机器指令系统越来越复杂世界上首台CISC机器以1964年的IBM360为代表1979年研制出的用于电话交换系统的32位小型计算机IB

11、M801是世界上第一台采用RISC思想设计的计算机系统,CISC的主要问题20%与80%规律:经过大量的研究和分析,发现大约有20%的指令的使用频度较高,使用量约占整个程序的80%;而有80%左右的指令很少使用,它们的使用量约占整个程序的20%。VLSI生产工艺要求规整性,而在CISC处理器中,为实现大量的复杂指令,控制逻辑极不规整,给VLSI工艺造成很大困难,RISC处理器的控制逻辑非常简单,所需要的大量 通用寄存器非常规整,正好适应了VLSI工艺的要求,软硬件的功能分配问题:在CISC中,用一条复杂的指令来代替一串比较简单的指令,CPU时间=ICCPIT,关于IC对同一个源程序分别编译后所

12、生成的目标代码,RISC的比CISC的长。但由于复杂指令的使用频度低,所以RISC的IC只比CISC的多30%40%,关于CPICISC一般是用微程序实现机器指令的解释执行,一条指令要用几个周期才能完成,一些复杂指令甚至需要十几个、几十个周期才能完成。RISC的大多数指令都是单周期执行的,采用规整的硬布线控制逻辑实现,CPU时间=ICCPIT,关于TRISC采用硬布线逻辑实现,处理器的工作主频一般高于CISC处理机,故RISC的T比CISC的T更小。,RISC的定义与特点,RISC的特点大多数指令在单周期内完成采用LOAD/STORE结构:除Load/Store两种指令,其余指令都不能访存,以

13、便使除这两种指令外的所有指令都能在单周期内完成采用硬布线控制逻辑:可使大多数指令在单周期内完成减少指令和寻址方式的种类:可以简化控制部件的结构,加快指令的执行速度,采用固定的指令格式:不仅可以使指令的译码电路简化,而且便于采用流水技术提高程序的执行速度注重编译程序的优化设计:由于RISC精简了支持编译的某些专门指令,因此,RISC上的编译程序要比CISC的难写。,RISC的关键技术,重叠寄存器窗口技术RISC程序中的CALL和RETURN指令要比CISC程序中的多执行Call和Return指令时,访问存储器的信息量很大,大量的访存操作会大大降低处理机的速度基本思想:在处理器中设置一个数量较多的

14、寄存器堆,并把它划分成多个窗口。每个过程使用其中相邻的3个窗口和1个公共窗口。,3个相邻的窗口中,上一个窗口与前一个过程共用,可以用来存放前一过程传送给本过程的参数,同时也存放本过程传送给前一过程的计算结果;下一个窗口与后一个过程共用,用来存放本过程传送给后一过程的参数和后一过程传送给本过程的计算结果。即寄存器窗口对过程的分配是部分重叠的。,RISC II 采用的重叠寄存器窗口,全局窗口1个,由10个寄存器组成 局部窗口8个,每个有10个寄存器 重叠窗口8个,每个有6个寄存器,当调用层数超过规定层数时,称为寄存器溢出,这时可在主存中开辟一个堆栈,把最先被调用的过程所使用窗口的所有内容作为现场信

15、息压入堆栈中,指令的执行采用流水和延迟转移技术在RISC处理机中,指令一般采用流水方式执行一条指令的执行分为取指令(F)和执行(E)两个阶段如果遇到一条无条件转移指令或者一条条件转移指令且转移成功,那么,按重叠流水方式预取来的下一条指令应该作废,以保证程序的正确执行。延迟转移技术:由编译器在所有的转移指令后面都插入一条NOP,实际上将转移指令后面的指令的取指令延迟了一个周期,以便在转移指令执行完后,按其要求的转移目的地址取下一条指令,1:,2:,3:,4:,5:,硬联逻辑为主的指令实现技术RISC主要采用硬联逻辑实现指令系统,以使大多数常用指令在单周期执行完成对于少量复杂指令,可用固件(微程序

16、技术)实现。,RISC优化编译技术编译器必须精心安排每一个寄存器的用法,以便充分发挥通用寄存器的效率,尽量减少访问主存的次数编译器为调整指令执行顺序,要对被调整指令先做数据相关的分析,实现相关指令的延迟由于CISC的一条复杂指令的功能在RISC中要用一段子程序来实现,因此RISC的子程序库要比CISC的子程序库大得多。,load Ra, A store Ra, B load Ra, A+1 store Ra, B+1,load Ra, A load Rb, A+1 store Ra, B store Rb, B+1,采用高速缓冲存储器Cache,设置指令Cache和数据Cache分别存放指令和数据,可以保证向指令流水线不间断地输送指令和存取数据,提高流水的效率。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号