计算机系统结构课后答案
(完整版)计算机系统结构(课后习题答案)

第一章计算机系统结构的基本概念1.有一个计算机系统可按功能分成4级,每级的指令互不相同,每一级的指令都比其下一级的指令在效能上强M倍,即第i级的一条指令能完成第i-1级的M条指令的计算量。
现若需第i级的N 条指令解释第i+1级的一条指令,而有一段第1级的程序需要运行Ks,问在第2、3和4级上一段等效程序各需要运行多长时间?答:第2级上等效程序需运行:(N/M)*Ks。
第3级上等效程序需运行:(N/M)*(N/M)*Ks。
第4级上等效程序需运行:(N/M)*(N/M)*(N/M)*Ks。
note: 由题意可知:第i级的一条指令能完成第i-1级的M条指令的计算量。
而现在第i 级有N条指令解释第i+1级的一条指令,那么,我们就可以用N/M来表示N/M 表示第i+1级需(N/M)条指令来完成第i级的计算量。
所以,当有一段第1级的程序需要运行Ks时,在第2级就需要(N/M)Ks,以此类推2.硬件和软件在什么意义上是等效的?在什么意义上又是不等效的?试举例说明。
答:软件和硬件在逻辑功能上是等效的,原理上,软件的功能可用硬件或固件完成,硬件的功能也可用软件模拟完成。
但是实现的性能价格比,实现的难易程序不同。
在DOS操作系统时代,汉字系统是一个重要问题,早期的汉字系统的字库和处理程序都固化在汉卡(硬件)上,而随着CPU、硬盘、内存技术的不断发展,UCDOS把汉字系统的所有组成部份做成一个软件。
3.试以实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系与影响。
答:计算机系统结构、计算机组成、计算机实现互不相同,但又相互影响。
(1)计算机的系统结构相同,但可采用不同的组成。
如IBM370系列有115、125、135、158、168等由低档到高档的多种型号机器。
从汇编语言、机器语言程序设计者看到的概念性结构相同,均是由中央处理机/主存,通道、设备控制器,外设4级构成。
其中,中央处理机都有相同的机器指令和汇编指令系统,只是指令的分析、执行在低档机上采用顺序进行,在高档机上采用重叠、流水或其它并行处理方式。
计算机组成与系统结构课后答案免费版全(清华大学出版社 袁春风主编)

计算机组成与系统结构课后答案免费版全(清华大学出版社袁春风主编)计算机组成与系统结构课后答案免费版全(清华大学出版社-袁春风主编)第一章练习答案5.若有两个基准测试程序p1和p2在机器m1和m2上运行,假定m1和m2的价格分别是5000元和8000元,下表给出了p1和p2在m1和m2上所花的时间和指令条数。
程序p1p2m1指令条数200×106300×103执行时间(ms)100003指令条数150×106420×103m2执行时间(ms)50006请回答下列问题:(1)对于p1,哪台机器的速度快?快多少?对于p2呢?(2)在m1上执行p1和p2的速度分别是多少mips?在m2上的执行速度又各是多少?从执行速度让我们看看,对于P2,哪台机器速度快?多快?(3)假设M1和M2的时钟频率分别为800 MHz和1.2 GHz,则P1在M1和M2上执行时的平均时钟周期期数cpi各是多少?(4)如果某个用户需要大量使用程序p1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,当用户需要购买大量机器时,他应该选择M1还是M2?为什么?(注意:在性价比方面)(5)如果另一个用户也需要购买大量机器,但用户同样使用P1和P2,那么主要的问题是响应时间间,那么,应该选择m1还是m2?为什么?参考答案:(1)对于p1,m2比m1快一倍;对于p2,m1比m2快一倍。
(2)对于M1,P1的速度为200m/10=20mips;P2为300K/0.003=100mips。
对于m2,p1的速度为:150m/5=30mips;p2为420k/0.006=70mips。
就执行速度而言,对于P2,因为100/70=1.43倍,M1比m2快0.43倍。
(3)在M1上执行P1时的平均时钟周期数CPI为:10×800m/(200×106)=40在m2上执行p1时的平均时钟周期数cpi为:5×1.2g/(150×106)=40。
计算机组成与系统结构课后答案全(清华大学出版社_袁春风主编)

(2)[x]补=10000000 (4)[x]补=11010011 x = –0.0011001B x = –10000000B = –128 x = +0.101001B x = – 101101B = – 45
7.假定一台 32 位字长的机器中带符号整数用补码表示,浮点数用 IEEE 754 标准表示,寄存器 R1 和 R2 的内容分别为 R1:0000108BH,R2:8080108BH。不同指令对寄存器进行不同的操作,因而,不同 指令执行时寄存器内容对应的真值不同。假定执行下列运算指令时,操作数为寄存器 R1 和 R2 的内 容,则 R1 和 R2 中操作数的真值分别为多少? (1) 无符号数加法指令 (2) 带符号整数乘法指令 (3) 单精度浮点数减法指令 参考答案: R1 = 0000108BH = 0000 0000 0000 0000 0001 0000 1000 1011b R2 = 8080108BH = 1000 0000 1000 0000 0001 0000 1000 1011b (1) 对于无符号数加法指令, R1 和 R2 中是操作数的无符号数表示, 因此, 其真值分别为 R1: 108BH, R2:8080108BH。 (2)对于带符号整数乘法指令,R1 和 R2 中是操作数的带符号整数补码表示,由最高位可知, R1 为正数, R2 为负数。R1 的真值为+108BH, R2 的真值为–(0111 1111 0111 1111 1110 1111 0111 0100b + 1b) = –7F7FEF75H。 (3)对于单精度浮点数减法指令,R1 和 R2 中是操作数的 IEEE754 单精度浮点数表示。在 IEEE 754 标准中,单精度浮点数的位数为 32 位,其中包含 1 位符号位,8 位阶码,23 位尾数。 由 R1 中的内容可知, 其符号位为 0, 表示其为正数, 阶码为 0000 0000, 尾数部分为 000 0000 0001 0000 1000 1011,故其为非规格化浮点数,指数为–126,尾数中没有隐藏的 1,用十六进制表示 尾数为+0.002116H,故 R1 表示的真值为+0.002116H × 10-126。 由 R2 中的内容可知, 其符号位为 1, 表示其为负数, 阶码为 0000 0001,尾数部分为 000 0000 0001 0000 1000 1011,故其为规格化浮点数,指数为 1–127 = –126,尾数中有隐藏的 1,用十六进制 表示尾数为–1.002116H,故 R2 表示的真值为–1.002116H × 10-126
计算机系统结构课后答案chap2-answer

第二章计算机指令集结构设计名词解释1.堆栈型机器——CPU中存储操作数的单元是堆栈的机器。
2.累加型机器——CPU中存储操作数的单元是累加器的机器。
3.通用寄存器型机器——CPU中存储操作数的单元是通用寄存器的机器。
4.CISC——复杂指令集计算机。
5.RISC——精简指令集计算机。
@2.2堆栈型机器、累加器型机器和通用寄存器型机器各有什么优缺点2.3常见的三种通用寄存器型机器的优缺点各有哪些指令集结构设计所涉及的内容有哪些(1)指令集功能设计:主要有RISC和CISC两种技术发展方向;(2)寻址方式的设计:设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频度,根据适用频度设置相应必要的寻址方式;(3)操作数表示和操作数类型:主要的操作数类型和操作数表示的选择有,浮点数据类型(可以采用IEEE 754标准)、整型数据类型(8位、16位、32位的表示方法)、字符型(8位)、十进制数据类型(压缩十进制和非压缩十进制数据表示)等等。
(4)寻址方式的表示:可以将寻址方式编码与操作码中,也可将寻址方式作为一个单独的域来表示。
(5)((6)指令集格式的设计:有固定长度编码方式、可变长编码方式和混合编码方式三种选择。
简述CISC计算机结构指令集功能设计的主要目标。
从当前的计算机技术观点来看,CISC结构有什么缺点CISC结构追求的目标是强化指令功能,减少程序的指令条数,以达到提高性能的目的。
从目前的计算机技术观点来看,CISC结构存在以下几个缺点:(1)在CISC结构的指令系统中,各种指令的使用频率相差悬殊。
(2)CISC结构的指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。
(3)CISC结构的指令系统的复杂性给VLSI设计带来了很大负担,不利于单片集成。
(4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。
(5)^(6)在结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。
计算机组成与系统结构课后答案全(清华大学出版社袁春风主编)

第1章习题答案5.若有两个基准测试程序 P1 和 P2 在机器 M1 和 M2 上运行,假定 M1 和 M2的价格分别是5000 元和 8000元,下表给出了P1和P2在M1和 M2 上所花的时间和指令条数。
程序M1M2指令条数执行时间 (ms)指令条数执行时间 (ms)P1×610000×65000200 10150 10P2300×1033420×1036请回答下列问题:(1)对于 P1,哪台机器的速度快?快多少?对于P2 呢?(2)在 M1 上执行 P1 和 P2 的速度分别是多少 MIPS ?在 M2 上的执行速度又各是多少?从执行速度来看,对于 P2,哪台机器的速度快?快多少?(3)假定 M1 和 M2 的时钟频率各是 800MHz 和 1.2GHz ,则在 M1 和 M2 上执行 P1 时的平均时钟周期数 CPI 各是多少?(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择M1 还是 M2 ?为什么?(提示:从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1 和 P2 一样多,主要关心的也是响应时间,那么,应该选择M1 还是 M2 ?为什么?参考答案:(1)对于 P1,M2 比 M1 快一倍;对于 P2, M1 比 M2 快一倍。
(2)对于 M1 , P1 的速度为: 200M/10=20MIPS ; P2 为 300k/0.003=100MIPS 。
对于 M2 , P1 的速度为: 150M/5=30MIPS ; P2 为 420k/0.006=70MIPS 。
从执行速度来看,对于P2,因为 100/70=1.43 倍,所以M1 比 M2 快 0.43 倍。
(3)在 M1上执行P1 时的平均时钟周期数CPI 为: 10×800M/(200×106)=40 。
计算机体系结构课后答案

计算机体系结构课后答案【篇一:计算机体系结构习题(含答案)】1、尾数用补码、小数表示,阶码用移码、整数表示,尾数字长p=6(不包括符号位),阶码字长q=6(不包括符号位),为数基值rm=16,阶码基值re=2。
对于规格化浮点数,用十进制表达式写出如下数据(对于前11项,还要写出16进值编码)。
(1)最大尾数(8)最小正数(2)最小正尾数(9)最大负数(3)最小尾数(10)最小负数(4)最大负尾数(11)浮点零(5)最大阶码(12)表数精度(6)最小阶码(13)表数效率(7)最大正数(14)能表示的规格化浮点数个数2.一台计算机系统要求浮点数的精度不低于10-7.2,表数范围正数不小于1038,且正、负数对称。
尾数用原码、纯小数表示,阶码用移码、整数表示。
(1) 设计这种浮点数的格式(2) 计算(1)所设计浮点数格式实际上能够表示的最大正数、最大负数、表数精度和表数效率。
3.某处理机要求浮点数在正数区的积累误差不大于2-p-1 ,其中,p是浮点数的尾数长度。
(1) 选择合适的舍入方法。
(2) 确定警戒位位数。
(3) 计算在正数区的误差范围。
4.假设有a和b两种不同类型的处理机,a处理机中的数据不带标志符,其指令字长和数据字长均为32位。
b处理机的数据带有标志符,每个数据的字长增加至36位,其中有4位是标志符,它的指令数由最多256条减少到不到64条。
如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。
对于一个由1000条指令组成的程序,分别计算这个程序在a处理机和b处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发?5.一台模型机共有7条指令,各指令的使用频率分别为35%,25%,20%,10%,5%,3%和2%,有8个通用数据寄存器,2个变址寄存器。
(1) 要求操作码的平均长度最短,请设计操作码的编码,并计算所设计操作码的平均长度。
6.某处理机的指令字长为16位,有双地址指令、单地址指令和零地址指令3类,并假设每个地址字段的长度均为6位。
计算机组成与系统结构课后答案全

第 1 章习题答案5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令条数。
请回答下列问题:(1)对于P1,哪台机器的速度快?快多少?对于P2呢?(2)在M1上执行P1和P2的速度分别是多少MIPS?在M2上的执行速度又各是多少?从执行速度来看,对于P2,哪台机器的速度快?快多少?(3)假定M1和M2的时钟频率各是800MHz和,则在M1和M2上执行P1时的平均时钟周期数CPI各是多少?(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择M1还是M2?为什么?(提示:从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么?参考答案:(1)对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。
(2)对于M1,P1的速度为:200M/10=20MIPS;P2为300k/=100MIPS。
对于M2,P1的速度为:150M/5=30MIPS;P2为420k/=70MIPS。
从执行速度来看,对于P2,因为100/70=倍,所以M1比M2快倍。
(3)在M1上执行P1时的平均时钟周期数CPI为:10×800M/(200×106)=40。
在M2上执行P1时的平均时钟周期数CPI为:5×(150×106)=40。
(4)考虑运行P1时M1和M2的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性能应考虑执行时间,其性能为执行时间的倒数。
故性价比R为:R=1/(执行时间×价格)R越大说明性价比越高,也即,“执行时间×价格”的值越小,则性价比越高。
因为10×5000 > 5×8000,所以,M2的性价比高。
计算机系统结构——课后答案

习题一1、解释下列术语计算机系统的外特性:通常所讲的计算机系统结构的外特性是指机器语言程序员或编译程序编写者所看到的外特性,即由他们所看到的计算机的基本属性(概念性结构和功能特性)。
计算机系统的内特性:计算机系统的设计人员所看到的基本属性,本质上是为了将有关软件人员的基本属性加以逻辑实现的基本属性。
模拟:模拟方法是指用软件方法在一台现有的计算机上实现另一台计算机的指令系统。
可移植性:在新型号机出台后,原来开发的软件仍能继续在升级换代的新型号机器上使用,这就要求软件具有可兼容性,即可移植性。
可兼容性是指一个软件可不经修改或只需少量修改,便可由一台机器移植到另一台机器上运行,即同一软件可应用于不同环境。
Amdahl 定律:系统中对于某一部件采用某种更快的执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频度或占总执行时间的比例。
虚拟机(Virtual Machine ):指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
6、7、假定求浮点数平方根的操作在某台机器上的一个基准测试程序中占总执行时间的20%,为了增强该操作的性能,可采用两种不同的方法:一种是增加专门的硬件,可使求浮点数平方根操作的速度提高为原来的20倍;另一种方法是提高所有浮点运算指令的速度,使其为原来的2倍,而浮点运算指令的执行时间在总执行时间中占30%。
试比较这两种方法哪一种更好些。
答:增加硬件的方法的加速比23.120/2.0)2.01(11=+-=p S ,另一种方法的加速比176.12/3.0)3.01(12=+-=p S ,经计算可知Sp1>Sp2第一种方法更好些。
9、假设高速缓存Cache 的工作速度为主存的5倍,且Cache 被访问命中的概率为90%,则采用Cache 能使整个存储系统获得多高的加速比? 答:加速比%10)(%90'⨯++⨯==tc tm tc tmT T S ,其中tm=5tc ,代入公式,得到加速比S=3.33。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、数据结构和机器的数据表示之间是什么关系?确定和引入数据表示的基本原则是什么?答:数据表示是能由硬件直接识别和引用的数据类型。
数据结构反映各种数据元素或信息单元之间的结构关系。
数据结构要通过软件映象变换成机器所具有的各种数据表示实现,所以数据表示是数据结构的组成元素。
不同的数据表示可为数据结构的实现提供不同的支持,表现在实现效率和方便性不同。
数据表示和数据结构是软件、硬件的交界面。
除基本数据表示不可少外,高级数据表示的引入遵循以下原则:(1)看系统的效率有否提高,是否养活了实现时间和存储空间。
(2)看引入这种数据表示后,其通用性和利用率是否高。
2、标志符数据表示与描述符数据表示有何区别?描述符数据表示与向量数据表示对向量数据结构所提供的支持有什么不同?答:标志符数据表示指将数据类型与数据本身直接联系在一起,让机器中每个数所都带类型樗位。
其优点是:(1)简化了指令系统和程序设计;(2)简化了编译程序;(3)便于实现一致性校验;(4)能由硬件自动变换数据类型;(5)支持数据库系统的实现与数据类型无关;(6)为软件调试和应用软件开发提供支持。
缺点是:(1)会增加程序所点的主存空间;(2)在微观上对机器的性能(运算速度)不利。
数据描述符指数据的描述与数据分开存放,描述所访问的数据是整块还是单个的,及访问该数据块或数据元素的地址住处它具备标志符数据表示的优点,并减少了标志符数据表示所占的空间,为向量和数组结构的实现提供支持。
数据描述符方法优于标志符数据表示,数据的描述与数据分开,描述所访问的数据是整块还是单个的,及访问该数据块或数据元素的地址信息,减少了樗符数据表示所占的窨。
用描述符方法实现阵列数据的索引比用变址方法实现要方便,且便于检查出程序中的阵列越界错误。
但它不能解决向量和数组的高速运算问题。
而在有向量、数组数据表示的向量处理机上,硬件上设置有丰富的赂量或阵列运算指令,配有流水或阵列方式处理的高速运算器,不仅能快速形成向量、数组的元素地址,更重要的是便于实现把向量各元素成块预取到中央处理机,用一条向量、数组指令流水或同时对整个向量、数组高速处理.如让硬件越界判断与元素运算并行。
这些比起用与向量、阵列无关的机器语言和数据表示串行实现要高效的多。
3、堆栈型机器与通用寄存器型机器的主要区别是什么?堆栈型机器系统结构为程序调用的哪些操作提供了支持?答:有堆栈数据表示的机器称为堆栈机器。
它与一般通用寄存器型机器不同。
通用寄存器型机器对堆栈数据结构实现的支持是较差的。
表现在:(1)堆栈操作的指令少,功能单一;(2)堆栈在存储器内,访问堆栈速度低;(3)堆栈通常只用于保存于程序调用时的返回地址,少量用堆栈实现程序间的参数传递。
而堆栈机器为堆栈数据结构的实现提供有力的支持.表现在:(1)有高速寄存器组成的硬件堆栈,并与主存中堆栈区在逻辑上组成整体,使堆栈的访问速度是寄存器的,容量是主存的;(2)丰富的堆栈指令可对堆栈中的数据进行各种运算和处理;(3)有力地支持高级语言的编译;(4)有力地支持子程序的嵌套和递归调用。
堆栈型机器系统结构有力地支持子程序的嵌套和递归调用。
可将以下信息全部压栈,包括:保存子程序的返回地址,保存条件码,保存关键寄存器内容,保存必要的全局型、局部型参数,为子程序开辟存放局部变量和中间结果的工作区。
4、设某机阶值6位、尾数48位,阶符和数符不在其内,当尾数分别以2、8、16为基时,在非负阶、正尾数、规格化数情况下,求出其最小阶、最大阶、阶的个数、最小尾数值、最大尾数值、可表示的最小值和最大值及可表示的规格化数的总个数。
解:依题意知:p=6 m''=48 rm=2, 8, 16lanjing:lanjing:5、(1)浮点数系统使用的阶基rp=2,阶值位数p=2,尾数基值rm=10,以rm为基的尾数位数m''=1,按照使用的倍数来说,等价于m=4,试计算在非负阶、正尾数、规格化情况下的最小尾数值、最大尾数值、最大阶值、可表示的最小值和最大值及可表示数的个数。
(2)对于rp=2,p=2,rm=4,m''=2,重复以上计算。
解:依题意知列下表:p=2,rm=10,m''=1 p=2,rm=4,m''=2最小尾数值 10^-1= 4^-1=最大尾数值 1-10^-1= 1-4^-2=15/16最大阶值 2p^-1=3 3可表示的最小值可表示的最大值 10^3*=900 4^3*15/16=60可表示数的总个数 36 48不明白题中“按照使用的倍数来说,等价于m=4,” 这句话是什么意思,有什么作用呢?6、由4位数(其中最低位为下溢附加位)经ROM查表舍入法,下溢处理成3位结果,设计使下溢下处理平均误差接近于零的ROM表,列出ROM编码表地址与内容的对应关系。
解:地址 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111内容 000 001 001 010 010 011 011 100 100 101 101 110 110 111 111 1117、变址寻址和基址寻址各适用于何种场合?设计一种只用6位地址码就可指向一个大地址空间中任意64个地址之一的寻址机构。
解:基址寻址是对逻辑地址空间到物理地址空间变换的支持,以利于实现程序的动态再定位。
变址寻址是对数组等数据块运算的支持,以利于循环。
将大地址空间64个地址分块,用基址寄存器指出程序所在块号,用指令中6位地址码表示该块内64个地址之一,这样基址和变址相结合可访问大地址任意64个地址之一。
以下摘自南京大学出版社出版,李学干主编的辅导书变址寻址适合在标量计算机中,通过循环程序访问变址寄存器,修改其变址值来对向量或数组等数据结构中的各元素进行访问和处理。
基址寻址则主要是用于程序的逻辑地址空间到物理地址空间的变换,以支持程序使用动态再定位的技术。
设计一种只用6位地址码就可以指向一个大地址空间中任意64个地址之一的寻址机构,意味着指令中为寻址该操作数的地址码只有6位,只好用来表示这64个地址中的任一个。
那么这64个地址之一应当是在哪个大的地址空间的,就得使用其他办法来指明。
这里可列举常见的两种做法。
一种是采用隐含寻址,让标志这64个地址是相对哪个基点地址的区域用指令隐式规定的某个专门的寄存器中所存放的基址值来给出。
例如,可约定某个变址寄存器或某个基址器。
程序执行时,每当要访存时,就可以经硬件加法器将隐含寄存器的基址值与指令中给出的6位相对位移量相加来形成其访存单元的物理地址。
另一种是规定基点地址就是程序计数器,程序计数器(PC)存放的是当前所执行指令的下一条指令所在主存中的地址(或偏移地址)。
因此,可以通过使用无条件转移指令来修改PC的内容,实现在一个大的地址空间中的访问,这就是所谓的PC自相对寻址。
做法是通过将PC 的内容与指令中所提供的6位相对位移量相加来形成主存单元的物理地址。
8.经统计,某机器14条指令的使用频度分别为:,,,,,,,,,,,,,。
分别求出用等长码、Huffman码、只有两种码长的扩展操作码3种编码方式的操作码平均码长。
解:等长操作码的平均码长=4位;Huffman编码的平均码长=位;只有两种码长的扩展操作码的平均码长=位。
9.若某机要求:三地址指令4条,单地址指令255条,零地址指令16条。
设指令字长为12位.每个地址码长为3位。
问能否以扩展操作码为其编码?如果其中单地址指令为254条呢?说明其理由。
答:①不能用扩展码为其编码。
∵指令字长12位,每个地址码占3位;∴三地址指令最多是2^(12-3-3-3)=8条,现三地址指令需4条,∴可有4条编码作为扩展码,∴单地址指令最多为4×2^3×2^3=2^8=256条,现要求单地址指令255条,∴可有一条编码作扩展码∴零地址指令最多为1×2^3=8条不满足题目要求∴不可能以扩展码为其编码。
②若单地址指令254条,可以用扩展码为其编码。
∵依据①中推导,单地址指令中可用2条编码作为扩展码∴零地址指令为2×2^3=16条,满足题目要求10、某机指令字长16位。
设有单地址指令和双地址指令两类。
若每个地址字段为6位.且双地址指令有X条。
问单地址指令最多可以有多少条?答:双地址指令最多是2^(16-6-6)=2^4=16条,现双地址指令有X条,∴可有(16-X)条编码作为扩展码,∴单地址指令最多为(16-X)×2^611.何谓指令格式的优化?简要列举包括操作码和地址码两部分的指令格式优化可采用的各种途径和思路。
答:指令格式的优化指如何用最短位数表示指令的操作信息和地址信息,使程序中指令的平均字长最短。
为此用到Huffman压缩概念。
其基本思想是,当各种事件发生概率不均等时,采用优化技术对发生概率最高的事件用最短的位数(时间)来表示(处理),而对出现概率较低的事件,允许采用较长位数(时间)来表示(处理),会导致表示(处理)的平均位数(时间)的缩短。
①用此思想可对操作码进行优化。
首先通过大量已有典型程序进行统计,可得到每种指令在程序中出现的概率(使用频度)。
然后构造它们的Huffman树。
方法如下:a)被统计指令按使用频由小到大排列;b)每次选择其中最小的二个频度合成一个频度是它们二者之和的新结点,并将该结点按频度大小插到余下的未参与结合的频度值中;c)如此继续,直至全部频度结合完毕形成根结点。
最后从根结点开始对每个结点的两个分支分别用0、1表示,则到达各频度指令的代码序列就构成该频度指令的Huffman码。
Huffman码是最优化的编码,但这种编码码长种类太多.不便于译码,不能实用,为此可采用下面的扩展操作码编码。
扩展操作码编码是介于定长二进制编码和全Huffman编码之间的一种编码,仍利用Huffman压缩思想,使操作码平均长度缩短。
其操作码长度不定,但只有有限几种码长,是一种可实用的优化编码方法。
扩展方法应根据指令使用频度pi的分布而定.如pi 值在头15种指令中都比较大,但在30种指令以后急剧减少,则宜选15/15/15法;若pi值在头8种指令中较大,之后的64种指令pi值也不低时,则宜选8/64/512法。
衡量标准是哪种编码使平均长度最短。
②对地址码的优化:操作码的优化表示可以使指令总位数减少,但为不降低访存指令的速度.必须维持指令字按整数边界存储,所以首先应考虑地址码也用可变长.让长操作码与短地址码配合.即使是定长指令字,也可利用操作码优化腾出的空白。
减少存储空间的浪费。
如果最常用的操作码最短,其地址码个数越多指令功能越强。