最小阶(非负阶,最小为0) 最大阶(2^p-1) 最小尾数值(rm^(-1)) 最大尾数值(1-rm^(-m')) 可表示的最小值 可表示的最大值 阶的个数(2^p) 可表示的尾数的个数 可表示的规格化数的个数 note:
p=6,m=48,rm=2(m'=48) 0 2^6-1 1/2 1-2^(-48) 1/2 2^63*(1-2^(-48)) 2^6 2^48*(2-1)/2 2^6*2^48*(2-1)/2 p=6,m=48,rm=8(m'=16) 0 2^6-1 1/8 1-8^(-16),即(1-2^(-48)) 1/8 8^63*(1-8^(-16)) 2^6 8^16*(8-1)/8 2^6*8^16*(8-1)/8 p=6,m=48,rm=16(m'=12) 0 2^6-1 1/16 1-16^(-12),即(1-2^(-48)) 1/16 16^63*(1-16^(-12)) 2^6 16^12*(16-1)/16 2^6*16^12*(16-1)/16 可表示的最小值=rm^(最小阶)*最小尾数值=rm^0*rm^(-1)=rm^(-1); 可表示的最大值=rm^(最大阶)*最大尾数值=rm^(2^p-1)*(1-rm^(-m')); 可表示的尾数的个数=rm^m'*(rm-1)/rm;
可表示的规格化数的个数=阶的个数*尾数的个数=2^p*rm^m'*(rm-1)/rm。
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 10^-1=0.1 1-10^-1=0.9 2p^-1=3 0.1 10^3*0.9=900 36 p=2,rm=4,m'=2 4^-1=0.25 1-4^-2=15/16 3 0.25 4^3*15/16=60 48 题中“按照使用的倍数来说,等价于m=4,” 这个m=4,因为2^3<10<2^4,等价为实际要4个二进制位,表示RM=10为基的一位
6.由4位数(其中最低位为下溢附加位)经ROM查表舍入法,下溢处理成3位结果,设计使下溢处理平均误差接近于零的ROM表,列出ROM编码表地址与内容的对应关系。 解: ROM编码表地址与内容的对应关系
地0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 5
址 内000 001 001 010 010 011 011 100 100 101 101 110 110 111 111 111 容
7.变址寻址和基址寻址各适用于何种场合?设计一种只用6位地址码就可指向一个大地址空间中任意64个地址之一的寻址机构。
答:基址寻址是对逻辑地址空间到物理地址空间变换的支持,以利于实现程序的动态再定位。变址寻址是对数组等数据块运算的支持,以利于循环。将大地址空间64个地址分块,用基址寄存器指出程序所在块号,用指令中6位地址码表示该块内64 个地址之一,这样基址和变址相结合可访问大地址任意64个地址之一。比如地址空间很大,为0-1023,只用6位地址码就可以指向这1024个地址中的任意64个。
剖析:比如地址空间很大,1024,就是分成16个块,块号放在寄存器中,块内地址放在地址位中,寄存器内容和地址位结合,就能达到要求了。 8.
经
统
计
,
某
机
器
14
条
指
令
的
使
用
频
度
分
别
为
:
0.01,0.15,0.12,0.03,0.02,0.04,0.02,0.04,0.01,0.13,0.15,0.14,0.11,0.03。分别求出用等长码、Huffman码、只有两种码长的扩展操作码3种编码方式的操作码平均码长。
解:等长操作码的平均码长=4位;Huffman编码的平均码长=3.38位;只有两种码长的扩展操作码的平均码长=3.4位。
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条,满足题目要求 note:
三地址指令格式: 操作码 地址码 地址码 地址码 3位 3位 3位 3位
6
单地址指令格式: 操作码 地址码 9位 3位
所以前面9位由于三地址指令用了最前面3位,还有中间6位可作为编码(也就是总共可以有9位作为单地址指令的指令操作码的编码)。减去3地址指令的4条,有4*2^6=256条,但由于韪目要求要有255条,所以剩下一个编码,已经用了9位的全部编码,最后零地址指令(全部12位都可作为操作码的编码)还有1*2^3=8 (这是12位编码中最后三位的)若只要求254种,则可以有(256-254)*2^3=16条
10.某机指令字长16位。设有单地址指令和双地址指令两类。若每个地址字段为6位.且双地址指令有X条。问单地址指令最多可以有多少条?
答: 单地址指令最多为(16-X)×2^6
P.S.双地址指令最多是2^(16-6-6)=2^4=16条, 现双地址指令有X条, ∴可有(16-X)条编码作为扩展码, ∴单地址指令最多为(16-X)×2^6=256条
11.何谓指令格式的优化?简要列举包括操作码和地址码两部分的指令格式优化可采用的各种途径和思路。 答: 指令格式的优化指如何用最短位数表示指令的操作信息和地址信息,使程序中指令的平均字长最短。 ①操作码的优化
采用Huffman编码和扩展操作码编码。 ②对地址码的优化: 采用多种寻址方式;
采用0、1、2、3等多种地址制;
在同种地址制内再采用多种地址形式,如寄存器-寄存器型、寄存器-主存型、主存-主存型等; 在维持指令字在存储器内按整数边界存储的前提下,使用多种不同的指令字长度。
12.某模型机9条指令使用频率为:
ADD(加) 30% SUB(减) 24% JOM(按负转移) 6% STO(存) 7% JMP(转移) 7% SHR(右移) 2% CIL(循环) 3% CLA(清加) 20% STP(停机) 1%
要求有两种指令字长,都按双操作数指令格式编排,采用扩展操作码,并限制只能有两种操作码码长。设该机有若干通用寄存器,主存为16位宽,按字节编址,采用按整数边界存储。任何指令都在一个主存周期中取得,短指令为寄存器-寄存器型,长指令为寄存器-主存型,主存地址应能变址寻址。
(1)仅根据使用频率,不考虑其它要求,设计出全Huffman操作码,计算其平均码长; (2)考虑题目全部要求,设计优化实用的操作形式,并计算其操作码的平均码长; (3)该机允许使用多少可编址的通用寄存器? (4)画出该机两种指令字格式,标出各字段之位数;
7
(5)指出访存操作数地址寻址的最大相对位移量为多少个字节? 解:
第(1)和(2)中Huffman和扩展操作码的编码及平均码长如下表:
指令Ii 使用频度Pi Huffman编码 扩展操作码编码 I1 30% 10 00 I2 24% 00 01 I3 20% 01 10 I4 7% 1100 11000 I5 7% 1101 11001 I6 6% 1110 11010 I7 3% 11110 11011 I8 2% 111110 11100 I9 1% 111111 11101 西个马pili 2.61 2.78
(3)8个。
(4)两种指令格式如下图所示:
2位 3位 3位 OP R1 R2 操作码 寄存器1 寄存器2
5位 3位 3位 5位 OP R1 X d
操作码 寄存器1 变址寄存器 相对位移 主存逻辑地址
(5)访存操作数地址寻址的最大相对位移量为32个字节。
13.设计RISC机器的一般原则及可采用的基本技术有那些? 答: 一般原则:
(1)确定指令系统时,只选择使用频度很高的指令及少量有效支持操作系统,高级语言及其它功能的指令; (2)减少寻址方式种类,一般不超过两种; (3)让所有指令在一个机器周期内完成;
(4)扩大通用寄存器个数,一般不少于32个,尽量减少访存次数; (5)大多数指令用硬联实现,少数用微程序实现; (6)优化编译程序,简单有效地支持高级语言实现。 基本技术:
8