欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    指令系统的设计和优化.ppt

    • 资源ID:2798332       资源大小:1.14MB        全文页数:48页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    指令系统的设计和优化.ppt

    §3 指令系统的设计和优化,指令系统是从程序设计者看到的机器的主要属性,是软、硬件的主要界面 指令系统是计算机系统结构的主要组成部分 指令系统是软件与硬件分界面的一个主要标志 指令系统是软件与硬件之间互相沟通的桥梁 指令系统与软件之间的语义差距越来越大 指令系统的设计主要包括指令的功能(操作类型、具体操作内容)和指令格式的设计.,内容,指令系统设计的基本原则 指令操作码的优化 指令字格式的优化,指令设计的步骤,根据应用,初拟出指令的分类和具体的指令; 试编出用该指令系统设计的各种高级语言的编译程序; 对各种算法白那些大量测试程序进行模拟测试,看指令系统的操作码和寻址方式效能是否都比较高; 将程序中高频出现的指令串复合改成一条强攻能新指令,即改用硬件方式实现;而将频度很低的指令的操作改成基本的指令组成的指令串来完成,即用软件方式实现;,指令类型,非特权型:主要供应应用程序员使用,也可供系统程序员使用,包括算术逻辑运算、数据传送、浮点运算、字符串、十进制运算、控制转移及系统控制等; 特权型:系统程序员使用,用户无权使用,有启动I/O(多用户环境下)、停机等待、存储管理保护、控制系统状态、诊断等;,指令系统的设计,设计的原则:如何支持编译系统能高效、简易地将源程序翻译成目标代码。 规整性 对称性 独立性和全能性 正交性 可组合性 可扩充性,系统设计人员希望,指令码密度适中 高密度指令:强功能符合指令 优点:减少程序长度、访存次数、Cache、虚存访问调度次数、程序运行时间; 缺点:指令系统复杂,硬件实现困难; 兼容性 适应性,指令系统的设计包含的内容,指令的格式 指令的类型 操作功能 操作数的访问方式-寻址方式,指令的组成,一般的指令主要由两部分组成:操作码和地址码 操作码主要包括两部分内容: 操作种类:加、减、乘、除、数据传送、移位、转移、输入输出 操作数描述 数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量 进位制:2进制、10进制、16进制 数据字长:字、半字、双字、字节 地址码通常包括三部分内容: 地址:直接地址、间接地址、立即数、寄存器编号、变址寄存器编号 地址的附加信息:偏移量、块长度、跳距 寻址方式:直接寻址、间接寻址、立即数寻址、变址寻址、相对寻址、寄存器寻址,指令设计要考虑的问题,操作数的存储形式 存储器 CPU内什么地方 每条指令中显式说明的操作数个数 操作数的位置 操作类型 操作数的类型和长短,指令的分类,指令格式的优化,指令=操作码+地址码 指令格式的优化:如何用最短的位数来表示 指令的操作信息和地址信息,使程序中指 令的平均字长最短。 主要目标: 节省程序的存储空间 指令格式尽量规整,便于译码,操作码的优化表示,操作码的三种编码方法: 固定长度: 规整性好,解码简单,空间大。 IBM公司的大中型机:最左边8位为操作码 Intel公司的Intanium处理机:14位定长操作码 许多RISC处理机采用定长操作码 Huffman编码:空间小,规整性不好,解码复杂。 扩展编码: 折衷方案。,改进操作码编码方式能够节省程序存储空间 例如:Burroughs公司的B-1700机,哈夫曼(Huffman)压缩,当各种事件发生的概率不均等时,采用优化技术对发生概率最高的事件用最短的位数(时间)来表示(处理),而对出现概率较低的允许用较长的位数(时间)来表示(处理),以达到平均位数减少的目的。 用于代码压缩、程序压缩、空间压缩和时间压缩,操作码的优化表示,信息源熵:信息源包含的平均信息量。 信息冗余量:,举例,七条指令,频度如下 I1 I2 I3 I4 I5 I6 I7 0.4 0.3 0.15 0.05 0.04 0.03 0.03 信息源熵H=2.17 信息冗余量=0.28=28%,扩展编码,Huffman操作码的主要缺点: 操作码长度很不规整,硬件译码困难 与地址码共同组成固定长的指令比较困难 扩展编码法:由固定长操作码与Huffman编码法相结合形成 减少平均长度 方便译码,上例:Huffman用四种长度 0,10,110,11100,11101,11110,11111 I1、I2、I3用两位:00、01、10 I4、I5、I6、I7用四位: 1100、1101、1110、1111 平均码长=2.30 信息冗余量=0.0565=5.65%,Huffman编码方法,写出每个事件出现频度 找出两个时间出现频度最低的数字,相加形成新的频度 重复(2),直到出现频度为1,建立Huffman树 确定Huffman代码表,说明,目的:平均码长减少。 Huffma代码不唯一 0,1对换 合并次序,假设一台模型计算机共有7种不同的操作码,如果采用固定长操作码需要3位。已知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。 利用Huffman树进行操作码编码的方法,又称为最小概率合并法。,举例1,把所有指令按照操作码在程序中出现的概率,自左向右从排列好。 选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合。 在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。 最后得到的根结点的概率值为1。 每个结点都有两个分支,分别用一位代码“0” 和“1”表示。,从根结点开始,沿尖头所指方向,到达属于该指令的概率结点,把沿线所经过的代码组合起来得到这条指令的操作码编码。 解:采用Huffman编码法所得到的操作码的平均长度 0.45×10.30×20.15×30.05×4 0.03×50.01×60.01×61.97(位) 熵H0.45×1.1520.30×1.7370.15×2.737 0.05×4.3220.03×5.0590.01×6.644 0.01×6.6441.95(位),采用3位固定长操作 码的信息冗余量为:,例如:把上例改为1-2-3-5扩展编码法,其操作码最短平均长度为: H = 0.45×10.30×20.15×3 (0.050.030.010.01)×5 = 2.00 信息冗余量为: 又例如:把上例改为2-4等长扩展编码法,其操作码最短平均长度为: H = (0.45+0.30+0.15)×2+ (0.05+0.03+0.01+0.01)×4 = 2.20 信息冗余量为:,举例2:二十进制代码压缩,2位二十进制代码可表示099,写出概率表,ae=00, g=0.8*0.8=0.64 ae=01, g=0.2*0.8=0.16 ae=10, g=0.8*0.2=0.16 ae=11, g=0.2*0.2=0.04,画出Huffman代码树,写出代码表,写出压缩代码表,操作码等长扩展编码法,指令字格式的优化,为了不降低访存取指令的速度,按整数边界存储。 操作数地址的位数 从寻址范围看:越大越好 用各种方法,压缩操作码的位数 通过采用多种不同的寻址方式、地址制、地址形式和地址码长度以及多种指令字长,将它们与可变长操作码的优化表示相结合,可构成冗余度尽可能少的指令字。,等长地址码发挥不出操作码优化表示的作用,在定长指令字内实现多种地址制,基础:初步设计的指令集。 目标:减少指令长度,提高指令性能。 优化原则: 采用高概率优先思想,对高频率指令,缩短指令长度,提高效率,对低频率指令,主要满足功能要求; 地址码长度富裕时,采用不同的寻址方式或不同的地址制,增加功能; 地址码长度紧张时,采用特定的寻址方式或增加指令字长,满足功能。 寻址方式中必须支持使用频率较高的寻址方式,相关参数必须满足90%以上的使用频率。,地址码的优化表示,地址码个数的选择 地址码个数通常有3个、2个、1个及个等4种情况 评价指令中地址码个数应该取多少的标准主要有两个: 程序存储容量,包括操作码和地址码 程序执行速度,以程序执行过程中访问主存的信息量代表,举例:计算一个典型的算术表达式,用三地址指令编写的程序如下 MUL X, A, B ;X(A)×(B) ADD X, X, C ;X(X)(C) SUB X, X, D ;分子的计算结果在中 ADD Y, E, F ;计算分母,存入 YDIV X, X, Y ;最后结果在X单元中,用普通二地址指令编写的程序 MOVE X, A ;复制临时变量到X中 MUL X, B ADD X, C SUB X, D ;X中存放分子运算结果 MOVE Y, E ;复制临时变量到Y中 ADD Y, F ;Y中存放分母运算结果 DIV X, Y ;最后结果在X单元中,用多寄存器结构的二地址指令编写程序 MOVE R1, A ;操作数a取到寄存器R1中 MUL R1, B ADD R1, C SUB R1, D ;R1中存放分子运算结果 MOVE R2, E ADD R2, F ;R2中存放分母运算结果 DIV R1, R2 ;最后结果在R1中 MOVE X, R1 ;最后结果存入X中,用一地址指令编写的程序 LOAD E ;先计算分母, ;取一个操作数到累加器中 ADD F ;分母运算结果在累加器中 STORE X ;保存分母运算结果到X中 LOAD A ;开始计算分子 MUL B ADD C SUB D ;累加器中是分子运算结果 DIV X ;最后运算结果在累加器中 STORE X ;保存最后运算结果到X中,用0地址指令编写程序:ab*c+d-ef+/ PUSH A ;操作数a压入堆栈 PUSH B ;操作数b压入堆栈 MUL ;栈顶两数相乘,结果压回堆顶 PUSH C ADD PUSH D SUB ;栈顶是分子运算的结果 PUSH E PUSH F ADD DIV ;栈顶是最后运算的结果 POP X ;保存最后运算结果,关于地址码个数结论,对于一般商用处理机,采用多寄存器结构的二地址指令是最理想的。 如果强调硬件结构简单,并且以连续运算(如求累加和等)为主,宜采用一地址结构。 对于以向量、矩阵运算为主的处理机,最好采用三地址结构。RISC处理机采用三地址指令 对于解决递归问题为主的处理机,宜采用零地址结构。编程容易、节省程序存储量。,缩短地址码长度的方法,用一个短地址码表示一个大地址空间 用间址寻址方式缩短地址码长度方法: 在主存储器的低端开辟一个专门存放间接地址的区域 用变址寻址方式缩短地址码长度 变址寻址方式中的地址偏移量比较短, 用寄存器间接寻址方式缩短地址码长度 例如:16个间址寄存器,用4位地址码就能表示很长的逻辑地址空间。,

    注意事项

    本文(指令系统的设计和优化.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开