指令系统的设计和优化ppt课件_第1页
指令系统的设计和优化ppt课件_第2页
指令系统的设计和优化ppt课件_第3页
指令系统的设计和优化ppt课件_第4页
指令系统的设计和优化ppt课件_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、3 指令系统的设计和优化 n指令系统是从程序设计者看到的机器的主要属性,是软、硬件的主要界面n指令系统是计算机系统构造的主要组成部分n指令系统是软件与硬件分界面的一个主要标志n指令系统是软件与硬件之间相互沟通的桥梁n指令系统与软件之间的语义差距越来越大n指令系统的设计主要包括指令的功能操作类型、详细操作内容和指令格式的设计.内容n指令系统设计的根本原那么n指令操作码的优化n指令字格式的优化n 指令设计的步骤n根据运用,初拟出指令的分类和详细的指令;n试编出用该指令系统设计的各种高级言语的编译程序;n对各种算法白那些大量测试程序进展模拟测试,看指令系统的操作码和寻址方式效能能否都比较高;n将程序

2、中高频出现的指令串复合改成一条强攻能新指令,即改用硬件方式实现;而将频度很低的指令的操作改成根本的指令组成的指令串来完成,即用软件方式实现;指令类型n非特权型:主要供应运用程序员运用,也可供系统程序员运用,包括算术逻辑运算、数据传送、浮点运算、字符串、十进制运算、控制转移及系统控制等;n特权型:系统程序员运用,用户无权运用,有启动I/O多用户环境下、停机等待、存储管理维护、控制系统形状、诊断等;指令系统的设计n设计的原那么:如何支持编译系统能高效、简易地将源程序翻译成目的代码。n规整性n对称性n独立性和全能性n正交性n可组合性n可扩展性系统设计人员希望n指令码密度适中n高密度指令:强功能符合指

3、令n优点:减少程序长度、访存次数、Cache、虚存访问调度次数、程序运转时间;n缺陷:指令系统复杂,硬件实现困难;n兼容性n顺应性指令系统的设计包含的内容n指令的格式n指令的类型n操作功能n操作数的访问方式-寻址方式指令的组成n普通的指令主要由两部分组成:操作码和地址码n操作码主要包括两部分内容:n操作种类:加、减、乘、除、数据传送、移位、转移、输入输出n操作数描画n数据的类型:定点数、浮点数、复数、字符、字符串、逻辑数、向量n进位制:2进制、10进制、16进制n数据字长:字、半字、双字、字节n地址码通常包括三部分内容:n地址:直接地址、间接地址、立刻数、存放器编号、变址存放器编号n地址的附加

4、信息:偏移量、块长度、跳距n寻址方式:直接寻址、间接寻址、立刻数寻址、变址寻址、相对寻址、存放器寻址指令设计要思索的问题n操作数的存储方式n存储器nCPU内什么地方n每条指令中显式阐明的操作数个数n操作数的位置n操作类型n操作数的类型和长短指令的分类指令格式的优化 n指令=操作码+地址码n指令格式的优化:如何用最短的位数来表示n 指令的操作信息和地址信息,使程序中指 n 令的平均字长最短。n主要目的:n节省程序的存储空间n指令格式尽量规整,便于译码操作码的优化表示n 操作码的三种编码方法:n固定长度: 规整性好,解码简单,空间大。nIBM公司的大中型机:最左边8位为操作码nIntel公司的In

5、tanium处置机:14位定长操作码n许多RISC处置机采用定长操作码nHuffman编码:空间小,规整性不好,解码复杂。n扩展编码: 折衷方案。固定长度4Huffman编码2.12扩展编码3.12信息源熵2.09n改良操作码编码方式可以节省程序存储空间n例如:Burroughs公司的B-1700机操作码编码方式整个操作系统所用指令的操作码总位数改良的百分比8位定长编码4-6-10扩展编码Huffman编码301,248184,966172,34603943哈夫曼Huffman紧缩n当各种事件发生的概率不均等时,采用优化技术对发生概率最高的事件用最短的位数时间来表示处置,而对出现概率较低的允许

6、用较长的位数时间来表示处置,以到达平均位数减少的目的。n用于代码紧缩、程序紧缩、空间紧缩和时间紧缩 操作码的优化表示 n信息源熵:信息源包含的平均信息量。 n信息冗余量: iippH2log操作码的实际平均长度操作码的实际平均长度H举例 n七条指令,频度如下n I1 I2 I3 I4 I5 I6 I7n0.4 0.3 0.15 0.05 0.04 0.03 0.03n n 信息源熵H=2.17 n 信息冗余量=0.28=28%1.000.600.300.150.060.030.030.040.050.150.300.400.0911111100000(11111)(11110)(11101)(

7、11100)(110)(10)(0)I7I6I1I2I3I4I5041.36%0136.020.2*71长度个数信息余量位平均码长iiilp扩展编码 nHuffman操作码的主要缺陷:n操作码长度很不规整,硬件译码困难n与地址码共同组成固定长的指令比较困难n扩展编码法:由固定长操作码与Huffman编码法相结合构成n减少平均长度n方便译码n上例:Huffman用四种长度n 0,10,110,11100,11101,11110,11111n I1、I2、I3用两位:00、01、10n I4、I5、I6、I7用四位:n 1100、1101、1110、1111n 平均码长=2.30n 信息冗余量=0

8、.0565=5.65%Huffman编码方法 n写出每个事件出现频度n找出两个时间出现频度最低的数字,相加构成新的频度n反复2,直到出现频度为1,建立Huffman树n确定Huffman代码表 阐明 n目的:平均码长减少。nHuffma代码不独一n0,1对换n合并次序 n 假设一台模型计算机共有7种不同的操作码,假设采用固定长操作码需求3位。知各种操作码在程序中出现的概率如下表,计算采用Huffman编码法的操作码平均长度,并计算固定长操作码和Huffman操作码的信息冗余量。利用Huffman树进展操作码编码的方法,又称为最小概率合并法。指令I1概率 0.45I20.30I30.15I40.

9、05I50.03I60.01I70.01举例1n把一切指令按照操作码在程序中出现的概率,自左向右从陈列好。n选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一同构成新结点集合。n在新结点集合中选取两个概率最小的结点进展合并,如此继续进展下去,直至全部结点合并终了。n最后得到的根结点的概率值为1。n每个结点都有两个分支,分别用一位代码“0 和“1表示。n从根结点开场,沿尖头所指方向,到达属于该指令的概率结点,把沿线所经过的代码组合起来得到这条指令的操作码编码。n解:采用Huffman编码法所得到的操作码的平均长度0.4510.3020.1530.05

10、40.0350.0160.0161.97位n熵H0.451.1520.301.7370.152.7370.054.3220.035.0590.016.6440.016.6441.95位0.450.300.150.050.030.010.011.000.550.250.100.050.02010101010101指令序号概率Huffman编码法操作码长度I10.4501位I20.30102位I30.151103位I40.0511104位I50.03111105位I60.011111106位I70.0111111116位采用3位固定长操作码的信息冗余量为:%35397. 117log12HRn例如

11、:把上例改为1-2-3-5扩展编码法,其操作码最短平均长度为:H=0.4510.3020.153(0.050.030.010.01)5=2.00信息冗余量为:n又例如:把上例改为2-4等长扩展编码法,其操作码最短平均长度为:H=(0.45+0.30+0.15)2+(0.05+0.03+0.01+0.01)4=2.20信息冗余量为:%5 . 200. 295. 11R%4 .1120. 295. 11R序号概率1-2-3-5扩展编码I10.450I20.3010I30.15110I40.0511100I50.0311101I60.0111110I70.01111112-4等长扩展编码000110

12、1100110111101111平均长度2.02.2信息冗余量2.5%11.4%7条指令的操作码扩展编码法 举例2:二十进制代码紧缩 n2位二十进制代码可表示099a b c d e f g h 0 0 0 00 0 0 00 0 0 10 0 0 10 0 1 00 0 1 00 0 1 10 0 1 10 1 0 00 1 0 00 1 0 10 1 0 10 1 1 00 1 1 00 1 1 10 1 1 11 0 0 01 0 0 01 0 0 11 0 0 1写出概率表nae=00, g=0.8*0.8=0.64nae=01, g=0.2*0.8=0.16nae=10, g=0.8

13、*0.2=0.16nae=11, g=0.2*0.2=0.04画出Huffman代码树,写出代码表ae状态概率Huffman代码0 00.6401 00.161 10 10.161 0 01 10.041 0 1写出紧缩代码表ae=000 b c d f g hae=10 b=c=01 1 x d f g hae=01 f=g=01 0 0 d b c hae=11 b=c=f=g=0 1 0 1 d x x h操作码等长扩展编码法 指令字格式的优化 n为了不降低访存取指令的速度,按整数边境存储。n操作数地址的位数n从寻址范围看:越大越好 n用各种方法,紧缩操作码的位数n经过采用多种不同的寻址

14、方式、地址制、地址方式和地址码长度以及多种指令字长,将它们与可变长操作码的优化表示相结合,可构成冗余度尽能够少的指令字。等长地址码发扬不出操作码优化表示的作用limax地址码地址码地址码空白浪费空白浪费liminli在定长指令字内实现多种地址制地址码地址码地址码地址码地址码地址码操作码操作码操作码n根底:初步设计的指令集。n目的:减少指令长度,提高指令性能。n优化原那么:n采用高概率优先思想,对高频率指令,缩短指令长度,提高效率,对低频率指令,主要满足功能要求;n地址码长度富有时,采用不同的寻址方式或不同的地址制,添加功能;n地址码长度紧张时,采用特定的寻址方式或添加指令字长,满足功能。n寻址

15、方式中必需支持运用频率较高的寻址方式,相关参数必需满足90%以上的运用频率。地址码的优化表示n地址码个数的选择n地址码个数通常有3个、2个、1个及个等4种情况n评价指令中地址码个数应该取多少的规范主要有两个:n程序存储容量,包括操作码和地址码n程序执行速度,以程序执行过程中访问主存的信息量代表举例:计算一个典型的算术表达式 n用三地址指令编写的程序如下nMUL X, A, B ;X(A)(B)nADD X, X, C ;X(X)(C)nSUB X, X, D ;分子的计算结果在中nADD Y, E, F ;计算分母,存入nYDIV X, X, Y ;最后结果在X单元中fed-cb*axn用普通

16、二地址指令编写的程序nMOVE X, A ;复制暂时变量到X中nMUL X, BnADD X, CnSUB X, D ;X中存放分子运算结果nMOVE Y, E ;复制暂时变量到Y中nADD Y, F ;Y中存放分母运算结果nDIV X, Y ;最后结果在X单元中n用多存放器构造的二地址指令编写程序nMOVE R1, A ;操作数a取到存放器R1中nMUL R1, BnADD R1, CnSUB R1, D ;R1中存放分子运算结果nMOVE R2, EnADD R2, F ;R2中存放分母运算结果nDIV R1, R2 ;最后结果在R1中nMOVE X, R1 ;最后结果存入X中n用一地址指

17、令编写的程序nLOAD E ;先计算分母,n ;取一个操作数到累加器中nADD F ;分母运算结果在累加器中nSTORE X ;保管分母运算结果到X中nLOAD A ;开场计算分子nMUL BnADD CnSUB D ;累加器中是分子运算结果nDIV X ;最后运算结果在累加器中nSTORE X ;保管最后运算结果到X中n用0地址指令编写程序:ab*c+d-ef+/nPUSH A ;操作数a压入堆栈nPUSH B ;操作数b压入堆栈nMUL ;栈顶两数相乘,结果压回堆顶nPUSH CnADDnPUSH DnSUB ;栈顶是分子运算的结果nPUSH EnPUSH FnADDnDIV ;栈顶是最后运算的结果nPOP X ;保管最后运算结果关于地址码个数结论n对于普通商用途置机,采用多存放器构造的二地址指令是最理想的

温馨提示

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

评论

0/150

提交评论