第二章指令系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第二章指令系统课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第二 指令系统 课件
- 资源描述:
-
1、 指令格式的优化是指如何用最短的二进制位数表示指令的操作码信息和指令格式的优化是指如何用最短的二进制位数表示指令的操作码信息和地址码信息,使指令的平均字长最短,同时便于译码。地址码信息,使指令的平均字长最短,同时便于译码。 指令的组成指令的组成操作码操作码地址码地址码1) 指令的操作种类。指令的操作种类。2) 所用操作数数据所用操作数数据类型。类型。1) 操作数地址。操作数地址。2) 地址附加信息。地址附加信息。3) 寻址方式。寻址方式。1) 使程序中指令的平均字长最短,节省程序的存储空间。使程序中指令的平均字长最短,节省程序的存储空间。2) 指令格式要规整,减少硬件译码的复杂程度。指令格式要
2、规整,减少硬件译码的复杂程度。1) 固定长度操作码。固定长度操作码。2) Huffman编码法。编码法。3) 扩展编码法。扩展编码法。固定长度操作码固定长度操作码采用等长操作码。采用等长操作码。 若指令系统共有若指令系统共有N种不同功能的指令,则指令系统中的种不同功能的指令,则指令系统中的所有指令的操作码长度固定为所有指令的操作码长度固定为lbN位。位。例:例:假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码,已知各种不同的操作码,已知各种操作码在程序中出现的概率如下表,利用固定长度编码种操作码在程序中出现的概率如下表,利用固定长度编码法进行操作码编码。法进行操作码编码。指令指令I
3、1概率概率0.45I20.30I30.15I40.05I50.03I60.01I70.01解:解:由于由于N=7 因此,指令操作码固定长度为因此,指令操作码固定长度为lbN=lb7=3指令序号指令序号概率概率编码编码操作码长度操作码长度I10.450003位位I20.300013位位I30.150103位位I40.050113位位I50.031003位位I60.011013位位I70.011103位位Huffman编码法(编码法(最小概率合并法最小概率合并法)Huffman压缩概念(最佳编码定理):压缩概念(最佳编码定理):当用n个长度不等的代码分别代表n种发生概率不等的事件时,按照短代码给高
4、概率事件、把长代码给低概率事件的原则分配,可使平均码长达到最低。 Huffman编码方法编码方法 这种编码方法由两个过程组成。频度合并:频度合并:将全部n个事件(在此即为n条指令)的频度值排序,选取其中最小的2个频度合并,然后将剩下的n-1个频度再次排序,再合并最小的2个频度,如此重复,直至剩下1个频度为止。记录所有的合并关系,形成一棵二叉树 Huffman树,所有原始频度值充当树叶,而最后剩下的总频度1为树根;码元分配:码元分配:从树根开始,对每个中间结点的左右2个分支边各赋予一位代码“0”和“1”(“0”在哪一侧不限)。读出从根结点到任一片树叶的路径上依次出现的代码位就排成了这个事件(即指
5、令)的完整编码。由于频度高的事件较晚被合并,它的编码位数也就较少,符合Huffman压缩原则。 上面所说的上面所说的频度值频度值就是各事件实际出现次数的百分比,就是各事件实际出现次数的百分比,它是理论出现它是理论出现概率概率的近似值。的近似值。 例:例:假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码,已种不同的操作码,已知各种操作码在程序中出现的概率如下表,利用知各种操作码在程序中出现的概率如下表,利用Huffman编码法进行操作码编码。编码法进行操作码编码。指令指令I1概率概率0.45I20.30I30.15I40.05I50.03I60.01I70.01Huffman树生成步
6、骤:树生成步骤:q 把所有指令按照操作码在程序中出现的概率,自左向右把所有指令按照操作码在程序中出现的概率,自左向右从排列好。从排列好。q 选取两个概率最小的结点合并成一个概率值是二者之和选取两个概率最小的结点合并成一个概率值是二者之和的新结点,并把这个新结点与其它还没有合并的结点一的新结点,并把这个新结点与其它还没有合并的结点一起形成新结点集合。起形成新结点集合。q 在新结点集合中选取两个概率最小的结点进行合并,如在新结点集合中选取两个概率最小的结点进行合并,如此继续进行下去,直至全部结点合并完毕。此继续进行下去,直至全部结点合并完毕。q 最后得到的根结点的概率值为最后得到的根结点的概率值为
7、1。q 每个结点都有两个分支,分别用一位代码每个结点都有两个分支,分别用一位代码“0” 和和“1”表表示。示。注意:注意: 对于同一个频度分布,应用哈夫曼算法可能生成不同的哈夫曼树,对于同一个频度分布,应用哈夫曼算法可能生成不同的哈夫曼树,因此,得到的哈夫曼编码并不唯一,但平均码长唯一。因此,得到的哈夫曼编码并不唯一,但平均码长唯一。0.450.300.150.050.030.010.011.000.550.250.100.050.02010101010101I1 I2 I3 I4 I5 I6 I7Huffman编码树生成过程编码树生成过程指令序号指令序号概率概率Huffman编码法编码法操作
8、码长度操作码长度I10.4501位位I20.30102位位I30.151103位位I40.0511104位位I50.03111105位位I60.011111106位位I70.011111116位位根据信息论的基本知识,在n种可能发生的事件集合中,报告第i种事件发生的消息中包含的信息量为:iaiaiPPIlog)1(log 其中Pi是第i种事件发生的先验概率,a是编码基值。信息量的单位是表示位数(最少所需位数)。 这个定义式表明事件的发生概率越低,关于它的消息中的信息量越大。一个消息源对n种事件发布的消息的信息量平均值,记为:niiainiiiPPIPH11)(log)(各事件编码长度的数学期望
9、。各事件编码长度的数学期望。niiilPL1)(表明消息编码中表明消息编码中“无用成分无用成分”所占的百分比。所占的百分比。%100LHLR 从减少存储与传输量的角度看,编码方法的平均码长越短越从减少存储与传输量的角度看,编码方法的平均码长越短越好。但是平均码长不可能无限制缩短,它的下限就是熵(即好。但是平均码长不可能无限制缩短,它的下限就是熵(即R=0时)。如果短于熵就一定会丢失有用信息(即混淆不同指时)。如果短于熵就一定会丢失有用信息(即混淆不同指令),这是不允许的。令),这是不允许的。例:例:假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码,如果采用固种不同的操作码,如果采用
10、固定长操作码需要定长操作码需要3位。已知各种操作码在程序中出现的概率如位。已知各种操作码在程序中出现的概率如下表,计算采用下表,计算采用Huffman编码法的操作码平均长度,并计算固编码法的操作码平均长度,并计算固定长操作码和定长操作码和Huffman操作码的信息冗余量。操作码的信息冗余量。解:解: Huffman编码结果如:编码结果如:指令序号指令序号概率概率Huffman编码法编码法操作码长度操作码长度I10.4501位位I20.30102位位I30.151103位位I40.0511104位位I50.03111105位位I60.011111106位位I70.011111116位位采用采用H
11、uffman编码法的操作码平均长度:编码法的操作码平均长度:0.4510.3020.1530.0540.0350.0160.0161.97(位)(位)最优最优Huffman编码法的操作码平均长度计算公式:编码法的操作码平均长度计算公式:niiainiiiPPIPH11)(log)(所以,采用最优所以,采用最优Huffman编码法的操作码平均长度为:编码法的操作码平均长度为:0.451.1520.301.7370.152.7370.054.3220.035.0590.016.6440.016.6441.95(位)(位)采用固定长度编码信息冗余量:采用固定长度编码信息冗余量:%35397. 117
12、log12HR采用采用Huffman编码法信息冗余量:编码法信息冗余量:与与3位定长操作码的冗余量位定长操作码的冗余量35相比要小得多。相比要小得多。1) 操作码长度很不规整,硬件译码困难操作码长度很不规整,硬件译码困难2) 与地址码共同组成固定长的指令比较困难与地址码共同组成固定长的指令比较困难%0 . 197. 195. 11R由固定长操作码与由固定长操作码与Huffman编码法相结合形成。编码法相结合形成。码长表示法:码长表示法:分等长扩展法和不等长扩展法。等长扩展法如4-8-12法,每次加长4位。但这并不能说明具体编码方法,例如下面两种编码方法都是4-8-12法。码点表示法:码点表示法
13、:例如15/15/15法,8/64/512法 15/15/15法,每一种码长都有4位可编码位(前头可以有相同的扩展标识前缀),可产生16个码点(即编码组合),但是至多只能使用其中15个来表示事件,留下1个或多个码点组合作为更长代码的扩展标识前缀。已经用来表示事件的码点组合不能再作为其它更长代码的前导部分,否则接收者会混淆。这就是“非前缀原则”。 8/64/512法,每一种码长按4位分段,每一段中至少要留下1位或多位作为扩展标识。各段剩下的可编码位一起编码,所产生的码点用来对应被编码事件。每一段中的标识位指出后面还有没有后续段。0000000111101111 00001111 00011111
14、 11101111 1111 00001111 1111 00011111 1111 11104位长度的操作码共有15种8位长度的操作码共有15种12位长度的操作码共有15种操作码编码操作码编码说明说明0000000101111000 00001000 00011111 01111000 1000 00001000 1000 00011111 1111 01114位长度的操作码共有8种8位长度的操作码共有64种12位长度的操作码共有512种操作码编码操作码编码说明说明例:例:假设一台模型计算机共有假设一台模型计算机共有7种不同的操作码。已知各种操种不同的操作码。已知各种操作码在程序中出现的概率
15、如下表,如果采用作码在程序中出现的概率如下表,如果采用1-2-3-5和和2-4扩展扩展编码法,计算操作码平均长度和信息冗余量。编码法,计算操作码平均长度和信息冗余量。指令指令I1概率概率0.45I20.30I30.15I40.05I50.03I60.01I70.01解:解:采用采用1-2-3-5扩展编码法操作码平均长度:扩展编码法操作码平均长度:H=0.4510.3020.153(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
16、)4=2.20信息冗余量:信息冗余量:%5 . 200. 295. 11R%4 .1120. 295. 11R序号概率1-2-3-5扩展编码I10.450I20.3010I30.15110I40.0511100I50.0311101I60.0111110I70.01111112-4等长扩展编码0001101100110111101111平均长度2.02.2信息冗余量2.5%11.4%指令指令I1I2I3I4I5I6I7I8I9I10概率概率0.250.200.150.100.080.080.050.040.030.02例:例:一台处理机有一台处理机有I1-I10共共10条指令,经统计,各指令在
17、程序中使用的频率条指令,经统计,各指令在程序中使用的频率如下:如下:(1)计算这)计算这10条指令的操作码编码的最短平均码长。条指令的操作码编码的最短平均码长。(2)写出这)写出这10条指令的操作码的哈夫曼编码,并计算编码的平均码长和信条指令的操作码的哈夫曼编码,并计算编码的平均码长和信息冗余量。息冗余量。(3)采用)采用3/7扩展编码和扩展编码和2/8扩展编码编写这扩展编码编写这10条指令的操作码,并分别计条指令的操作码,并分别计算平均码长和信息冗余量。哪种扩展编码比较好?说明理由。算平均码长和信息冗余量。哪种扩展编码比较好?说明理由。解解: (1)最短平均码长:最短平均码长:H=-pilo
18、g2pi=-(0.25log20.250.20log20.200.15log20.15 0.10log20.100.08log20.080.08log20.080.05log20.050.04log20.040.03log20.030.02log20.02)2.96(位)(位)(2)两种哈夫曼树两种哈夫曼树0.020.030.040.050.080.080.100.150. 200.250.050.090.130.170.230.320.430.5711011111111000000000.020.030.080.100.200.040.050.080.150.250.050.130.430.
19、230.090.170.320.571101111111100000000IiPi哈夫曼哈夫曼1I1i哈夫曼哈夫曼2I2iI10.25102002I20.20002102I30.1511030103I40.1001031103I50.081110301104I60.080110411104I70.0501114011105I80.04111105011115I90.031111106111105I100.021111116111115可见,哈夫曼编码不唯一。可见,哈夫曼编码不唯一。哈夫曼哈夫曼1平均码长:平均码长:I1=PiI1i=0.252+0.202+0.153+0.103+0.084+0
20、.084+0.054+0.045+ 0.036+0.026=2.99(位位)哈夫曼哈夫曼2平均码长:平均码长:I2=PiI2i=0.252+0.202+0.153+0.103+0.084+0.084+0.055+0.045+ 0.035+0.025=2.99(位位)可见,平均码长唯一。可见,平均码长唯一。信息冗余量:信息冗余量:Rn=(1-H/I1)=1-2.96/2.99=1.0%3/7和和2/8扩展编码如下表所示:扩展编码如下表所示:IiPi3/7扩展扩展I1i2/8扩展扩展I2iI10.25002002I20.20012012I30.1510210004I40.1011000510014
21、I50.0811001510104I60.0811010510114I70.0511011511004I80.0411100511014I90.0311101511104I100.02111105111143/7扩展平均码长:扩展平均码长:I3/7=PiI1i=(0.25+0.20+0.15)2+(0.10+0.08+0.08+0.05+0.04+0.03+0.02)5=3.2(位位)2/8扩展平均码长:扩展平均码长:I2/8=PiI2i=(0.25+0.20)2+(0.15+0.10+0.08+0.08+0.05+0.04+0.03+0.02)4=3.1(位位)可见,可见,2/8扩展优于扩展
展开阅读全文