1、2018/10/21,计算机组成原理,1,物理机:计算机硬核的物理功能只是执行机器语言,称为机器语言物理机,即一台实际的机器。 虚拟机:通常是指通过配置软件扩充机器功能后,形成的一台计算机,实际硬件在物理功能上并不具备这种功能。它将提供给用户的功能抽象出来,使之脱离具体的物理机器,这有利于让用户摆脱真实机器细节的束缚。,2018/10/21,计算机组成原理,2,3.10 设机器字长16位,阶码7位,含阶符1位;尾数9位,含数符1位(阶码底为2),若阶码和尾数均用补码表示,说明在尾数规格化和不规格化两种情况下,它所能表示的最大正数、非零最小正数、绝对值最大负数、绝对值最小负数各是多少?写出其机器
2、数,并给出十进制真值。若阶码用移码,尾数仍用补码,各值如何变化? 解:设阶码部分共m+1位(6+1),含阶符1位;尾数部分共n+1位(8+1),含数符1位。补码规格化时:,2018/10/21,计算机组成原理,3,补码非规格化:,阶码用移码,尾数用补码则规格化时(不考虑溢出情况),2018/10/21,计算机组成原理,4,注:在考虑溢出的情况时,当阶码用的移码-2m,称为机器零,故非零最小正数(2-63)(2-1)绝对值最小负数(2-63)-(2-1+ 2-8)。 非规格化时,在考虑溢出的情况时,非零最小正数(2-63)(2-8)绝对值最小负数(2-63)(- 2-8)。 3.13用压缩十进制
3、数串表示法表示下列十进制数:+66, -78,+254,-396,+1980,-1992答: 066C 078D 254C 396D 0198C 0112D,2018/10/21,计算机组成原理,5,3.20 X=-0.10110, Y=0.11111用加减交替法原码一位除计算X/Y的商及余数。(要求被除数的绝对值小于除数,否则溢出)解:|X|=00.10110 |Y|=00.11111 -Y补=11.00001被除数(余数) 商 操作说明0 0 . 1 0 1 1 0 0 0 0 0 0 0 开始情况+ 1 1 . 0 0 0 0 1 + -Y补1 1 . 1 0 1 1 1 0 0 0 0
4、 0 0 不够减,商上01 1 . 0 1 1 1 0 0 0 0 0 0 0 左移1位+ 0 0 . 1 1 1 1 1 + |Y|0 0 . 0 1 1 0 1 0 0 0 0 0 1 够减商上10 0 . 1 1 0 1 0 0 0 0 0 1 0 左移+ 1 1 . 0 0 0 0 1 + -Y补1 1 . 1 1 0 1 1 0 0 0 0 1 0 不够减,商上0 1 1 . 1 0 1 1 0 0 0 0 1 0 0 左移+ 0 0 . 1 1 1 1 1 + Y补0 0 . 1 0 1 0 1 0 0 0 1 0 1 够减商上10 1 . 0 1 0 1 0 0 0 1 0 1
5、0 左移,2018/10/21,计算机组成原理,6,被除数(余数) 商 操作说明0 1 . 0 1 0 1 0 0 0 1 0 1 0 左移 + 1 1 . 0 0 0 0 1 + -Y补0 0 . 0 1 0 1 1 0 0 1 0 1 1 够减商上1 0 0 . 1 0 1 1 0 0 1 0 1 1 0 左移 + 1 1 . 0 0 0 0 1 + -Y补1 1 . 1 0 1 1 1 0 1 0 1 1 0 不够减,商上0 + 0 0 . 1 1 1 1 1 余数是负则恢复余数 + Y补0 0 . 1 0 1 1 0 注:余数为正则不用恢复余数余数 商符号为 10=1 既是负号故商值为
6、 -0.10110 余数为-0.10110* 2-5 注: 操作过程是开始时减去除数,当余数为正时,商上1。求下一位商的办法,是余数左移1位,再减去除数;若当余数为负时,商上0,求下一位商的办法,是余数左移1位,再加上除数。但最后一次时若余数是负数时则需恢复余数,为正时则不用。符号位单独处理。,2018/10/21,计算机组成原理,7,3.31 设有16个信息位(k),如采用海明码校验,至少需要设置多少个校验位(r)?应放置在哪个位置上? 答:如采用查一位错方式,其公式为 2rk+r+1故选取r=5位, 即P5 P4 P3 P2 P1 ,因为 32 16+5+1。它们放置在2i-1位置上,即海
7、明码的H16 H8 H4 H2 H1 。如采用检测与自动校正一位错,并能发现两位错方式,其公式为 2r-1k+r 故选取r=6位, 即P6 P5 P4 P3 P2 P1 ,因为 32 16+6。它们一般放置在2i-1位置上,(注: P6只能放在海明码的最高位置上)即海明码的H22 H16 H8 H4 H2 H1 。,2018/10/21,计算机组成原理,8,3.1A 某微机内存有单精度符点数为C2308000H,计算其真值。 解:计算该浮点数的真值过程如下将其展开为二进制数,并区分出三个字段的编码为:1 100 0010 0011 0000 1000 0000 0000 0000字符 阶码 尾
8、数由于数符为1,该浮点数是一个负数。阶码真值= 1000100 - 0111111= 0000 0101尾数=1.0110 0001 0000 0000 0000 000于是该浮点数的真值为:-1.01100001*2+101=-101100.001=-44.125,2018/10/21,计算机组成原理,9,3.2A 已知X=+13,Y=+11,采用比较法的补码一位乘法计算 X*Y=?解:X=+1101 X补=00 1101 -X补=11 0011 (双符号位) Y=+1011 Y补=0 1011 (单符号位)部分和 Y0Y1Y2Y3Y4 Y5(附加位)0 0 0 0 0 0 0 1 0 1
9、1 0+ -X补 1 1 0 0 1 11 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 1 0 1 0 1 1 移位,左边补添同符号+ 0 0 0 0 0 0 0 1 1 1 0 0 1 1 0 1 0 1 11 1 1 1 0 0 1 1 0 1 0 1 移位,左边补添同符号+ X补 0 0 1 1 0 1 0 0 1 0 0 1 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 1 0 移位,左边补添同符号+ -X补 1 1 0 0 1 11 1 0 1 1 1 1 1 1 0 1 01 1 1 0 1 1 1 1 1 1 0 1 移位,左边补添同符号
10、+ X补 0 0 1 1 0 10 0 1 0 0 0 1 1 1 1 0 1X*Y补=00 1000 1111 X*Y=+10001111=+143,2018/10/21,计算机组成原理,10,3.3A 利用定点补码加减交替法求X/Y=0.1000/-0.1010=?解:以上是在|X|Y|即不溢出的前提下,规则如下; (1)第一步如果被除数与除数同号,用被除数减去除数;若两数异号,用被除数加上除数。如果所得余数与除数同号上商1,若余数与除数异号,上商0,该商即为结果的符号位。 (2)求商的数值部分 如果上次上商1,将余数左移一位后减去除数;如果上次上商0,将余数左移一位后加上除数。然后判断本
11、次操作后的余数,如果余数与除数同号上商1;若余数与除数异号上商0。如此重复执行 n-l次(设数值部分有n位)。 (3)商的最后一位一般采用恒置1的办法,井省略了最低位+1的操作,此时最大误差为士2-n。如果对商的精度要求较高则可按规则(2)再进行一次操作以求得商的第n位。当除不尽时若商为负,要在商的最低一位加 1,使商从反码值转变成补码值(不包括余数时是如此,包括时则不必做);若商为正最低位不需要加1。,2018/10/21,计算机组成原理,11,X补=00.1000 Y= - 0.1010 Y补=11.0110 -Y补=00.1010被除数(余数) 商 操作说明0 0 . 1 0 0 0 0
12、 0 0 0 0 开始情况+ 1 1 . 0 1 1 0 被除数与除数异号,则+ Y补1 1 . 1 1 1 0 0 0 0 0 1 余数与除数同号商Q上11 1 . 1 1 0 0 0 0 0 1 0 左移+ 0 0 . 1 0 1 0 因为Q上1,故+ -Y补0 0 . 0 1 1 0 0 0 0 1 0 余数与除数异号商Q上00 0 . 1 1 0 0 0 0 1 0 0 左移+ 1 1 . 0 1 1 0 因为Q上0,故+ Y补0 0 . 0 0 1 0 0 0 1 0 0 余数与除数异号商Q上00 0 . 0 1 0 0 0 1 0 0 0 左移+ 1 1 . 0 1 1 0 因为Q
13、上0,故+ Y补1 1 . 1 0 1 0 0 1 0 0 1 余数与除数同号商Q上11 1 . 0 1 0 0 1 0 0 1 0 左移+ 0 0 . 1 0 1 0 因为Q上1,故+ -Y补1 1 . 1 1 1 0 1 0 0 1 1 余数与除数同号商Q上1 商值=1.0011补码 余数=1.1110*2-4 补码,X/Y=-0.1101+(-0.0010*2-4 )/(-0.1010),2018/10/21,计算机组成原理,12,3 .4A 已知:X=+320 Y=-25,采用补码加减交替法求X/Y=?写出解题过程。解:X=+01 0100 0000 Y=-11001 X原=00 01
14、01000000=X补Y原=11 1101 Y补=11 00111 -Y补=00 11001 X,Y双符号位 , 商Q为单符号 被除数X (余数r) 商Q 操作0 0 0 1 0 1 0 0 0 0 0 0 0 X Y异号,做X+Y+Y补 1 1 0 0 1 1 11 1 1 0 0 0 1 0 0 0 0 0 1 r Y同号 Q上1(商符) 下次做2r-Y 左移 1 1 0 0 0 1 0 0 0 0 0 1 0 末位补0+ -Y补 0 0 1 1 0 0 11 1 1 1 0 1 1 0 0 0 0 1 1 r Y同号 Q上1(商值) 下次做2r-Y 左移 1 1 1 0 1 1 0 0
15、0 0 1 1 0 末位补0+ -Y补 0 0 1 1 0 0 10 0 0 1 1 1 1 0 0 0 1 1 0 r Y异号 Q上0 下次做2r+Y 左移 0 0 1 1 1 1 0 0 0 1 1 0 0 末位补0+Y补 1 1 0 0 1 1 10 0 0 0 1 0 1 0 0 1 1 0 0 r Y异号 Q上0 下次做2r+Y左移 0 0 0 1 0 1 0 0 1 1 0 0 0 末位补0 +Y补 1 1 0 0 1 1 11 1 1 0 0 0 1 0 1 1 0 0 1 r Y同号 Q上1 下次做2r-Y 左移 1 1 0 0 0 1 0 1 1 0 0 1 0 末位补0 +
16、 -Y补 0 0 1 1 0 0 11 1 1 1 0 1 1 1 1 0 0 1 1 r Y同号 Q上1 ,r X异号需纠余,+ -Y补 0 0 1 1 0 0 1 X,Y异号,故-Y0 0 1 0 1 0 0 1 1 0 0 1 1 商值为负,末位需加1 Q补= 1 10011+0 00001=1 10100 Q=-01100=-12r补= 0 10100=r原 r=+10100=+20,2018/10/21,计算机组成原理,13,3.5A 已知 X=+0.100100*2-101 Y=-0.100101*2+010 ,采用浮点补码乘法运算,求Z=X*Y=?解:采用浮点乘法运算过程分为三个
17、步骤:阶码相加,尾数相乘和对运算结果规格化。X原=11101,00.100100 Y原=00010,11.100101 X补=11011,00.1001 Y补=00010,11.0110111.阶码相加: EX= 1 1 0 1 1+ EY= 0 0 0 1 0 1 1 1 0 12.尾数相乘(采用补码移位乘法)X补 = 00.100100-X补=11.011100Y补 =1.011011,2018/10/21,计算机组成原理,14,Y0Y1Y2Y3Y4Y5Y6Y7 (附加位)0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0-X 11 0 1 1 1 0 011 0 1 1 1
18、0 0 1 0 1 1 0 1 1 0右移 11 1 0 1 1 1 0 0 1 0 1 1 0 1 1 加0并右移,高位补符号位+0 右移 11 1 1 0 1 1 1 0 0 1 0 1 1 0 1 加X并右移+X 00 1 0 0 1 0 0 00 0 1 1 0 1 1 0 0 1 0 1 1 0 1 右移 00 0 0 1 1 0 1 1 0 0 1 0 1 1 0 加-X -X 11 0 1 1 1 0 0 11 1 0 1 0 0 1 1 0 0 1 0 1 1 0 右移 11 1 1 0 1 0 0 1 1 0 0 1 0 1 1 加0并右移 +0 右移 11 1 1 1 0
19、1 0 0 1 1 0 0 1 0 1 加X并右移+X 00 1 0 0 1 0 000 0 1 1 1 1 0 0 1 1 0 0 1 0 1 右移 00 0 0 1 1 1 1 0 0 1 1 0 0 1 0 -Y -X 11 0 1 1 1 0 011 1 0 1 0 1 1 0 0 1 1 0 0 1 0 Y的数值位是n=6位故做 n+1次运算和n 次右移位Z补= 1.1010 1100 1100 Z补=1110,11.1010 1100 1100对运算结果规格化:X*Y补=11.100, 11.0101 1001 1000 ( 尾数左移,阶码+1)X*Y原=11.100, 11.10
20、10 0110 1000 Z=X*Y=-0.101001101000*2-100,2018/10/21,计算机组成原理,15,3.6A 已知X=-0.0100*2-111, Y=+0.1111*2-010,采用浮点补码除法运算求Q=X/Y=?解: X原=11.111, 11.0100 Y原=11.010, 00.1111X补=11.001, 11.1100 Y补=11.110, 00.11111. 阶码相减 :EY补=11.110 -EY补=00.010EX = 11.001+-EY= 00.010 11.0112. 尾数相除 (采用补码加减交替法除法)X尾= 11.1100 Y尾=00.11
21、11 -Y尾=11.0001运算过程如下:,2018/10/21,计算机组成原理,16,1 1 1 1 0 0 0. 0 0 0 0 X 、Y异号,第一次做X+Y操作+ Y尾= 0 0 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 r,Y同号上商1,并做左移2r-Y左移 0 1 0 1 1 0 0 0 0 1 0 末位填0 + -Y尾= 1 1 0 0 0 10 0 0 1 1 1 0 0 0 1 1 r,Y同号上商1,并做左移2r-Y左移 0 0 1 1 1 0 0 0 1 1 0 末位填0 + -Y尾= 1 1 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 r,
22、Y异号上商0,并做左移2r+Y左移 1 1 1 1 1 0 0 1 1 0 0 末位填0 + Y尾= 0 0 1 1 1 10 0 1 1 0 1 0 1 1 0 1 r,Y同号上商1,并做左移2r-Y左移 0 1 1 0 1 0 1 1 0 1 0 末位填0 + -Y尾= 1 1 0 0 0 10 0 1 0 1 1 1 1 0 1 1 r,Y同号上商1,r、x异号用-Y纠余; + -Y尾= 1 1 0 0 0 1 + 1 同时由于有余数,商为负,需加2-n 1 1 1 1 0 0 1 1 1 0 0 于是Q尾补=11.1100, r尾补=11.1100*2-1103. 对尾数结果规格化:Q
23、补=11.011, 11.1100=11.010,11.1000Q原=11.110,11.1000最后得: 商数Q=-0.1000 *2-110 ,余数r=-0.0100* 2-4,2018/10/21,计算机组成原理,17,4.5 有一个512K16的存储器,由64K1的2164RAM芯片组成(该芯片内是采用4个128行128列结构组成的),问:1)总共需多少个RAM芯片? 2)采用分散刷新方式,如单元刷新间隔不超过2ms,则刷新信号的周期是多少? 3)如采用集中刷新方式,设读写周期T=1us,存储器刷新一遍最少需多少时间?答:1) 512K/64K16/1=816=1282) 2ms/12
24、8=15.6us3) 0.1128=12.8us,2018/10/21,计算机组成原理,18,4.6 某机器中,已知有一个地址空间为0000H 1FFFH的ROM区域,现在再用RAM芯片(8K4)形成一个16K8的RAM区域,起始地址为2000H,假设RAM芯片有/CS和/WE信号控制端。CPU地址总线为A15A0,数据总线为D7D0,控制总线为R/W,访问存储器信号/MREQ。要求采用全译码方式设计,画出该系统的逻辑图。答:ROM区采用8K 8位的芯片,不用位扩展;RAM取需采用字位全扩展方式,需要芯片16K/8K 8/4=4片RAM 。已知8K字长片内地址线A12A0共13根,A15A13
25、作为片外选择地址线,由于采用全译码方式,故采用24译码器或38译码器完成,其逻辑图如下:,2018/10/21,计算机组成原理,19,图,MREQA0A15CPUD0D7R/W,A0A12 CS8K8ROMWE D0D7,A0A12 CS8K4RAM WE D0D3,A0A12 CS8K4RAM WE D4D7,OE 译码器,A0A12 CS8K 4RAM WE D0D3A0A12 CS 8K 4 WE D4D7,A15 A14 A13,CS0 CS1 CS2,2018/10/21,计算机组成原理,20,4.1A 某半导体存储器容量8K*8位,可选用的RAM芯片容量为2K*4位。已知地址总线A
26、15 A0,共16位;双向数据总线D7 D0,共8位,由R/W线控制读写。 问:1. 该存储系统要采用什么形式的扩展方式? 2. 总共需要多少个RAM芯片?3.请采用全译码方式,设计并画出该存储器系统的逻辑电路图,并注明存储器地址分配。解:1. 要采用字、位全扩展方式2. 所需芯片数为(8/2)*(8/4)=4*2=8片3. 全译码方式要求每一存储单元(字节)都要有唯一的存储地址,不得重叠。已知2K*4位芯片内字地址为A10A0共11位。而字长8K的存储范围是A12A0,其中A12、A11是片选地址,A15A13的连接决定哪种译码方式。全译码方式时其地址不能悬空和乱接。,2018/10/21,
27、计算机组成原理,21,8K*8b存储系统,A15A14A13A12A11A0A10 MREQCPUWED7D0,A0 CS A10 1#2K*4b WE D3D0,A0 CS A10 4#2K*4b WE D3D0,A0 CS A10 1#2K*4b WED7D4,A0 CS A10 4#2K*4b WED7D4,+,2:4 译码器,Y3,Y0,Y1,Y2,2018/10/21,计算机组成原理,22,该系统各存储块的地址范围分别为:A15A14A13A12A11A10A0 16进制数 1#是 0 0 0 0 0 0 0 0000H0 0 0 0 0 1 1 07FFH 2#是 0 0 0 0
28、1 0 0 0800H0 0 0 0 1 1 1 0FFFH 3#是 0 0 0 1 0 0 0 1000H0 0 0 1 0 1 1 17FFH 4#是 0 0 0 1 1 1 1 1FFFH 此8KB全译码方式的地址范围是0000H1FFFH如高三位A15A14A13的地址码分别为:0 0 1 其地址范围是 2000H3FFFH0 1 0 其地址范围是 4000H5FFFH0 1 1 其地址范围是 6000H7FFFH1 0 0 其地址范围是 8000H9FFFH1 0 1 其地址范围是 A000HBFFFH1 1 0 其地址范围是 C000HDFFFH1 1 1 其地址范围是 E000H
29、FFFFH,2018/10/21,计算机组成原理,23,4.2A 某机采用单总线结构,地址总线16根,数据总线8根,控制总线中有存储器请求MREQ,读写控制R/W。主存地址分配如下:08191(1FFFH)为系统区,由ROM组成; 8192(2000H)32767(7FFFH) 24KB为用户程序区;最大地址63487(F800H)65535(FFFFH)的2K地址空间为系统程序区,它们均由SRAM组成,存储器按字节编址。现有如下存储芯片:8K*8bit ROM , 2K*8bit , 8K*8bit SRAM。求: 1)需用芯片共多少片? 2)画出主存储器逻辑框图。 解:1)选用芯片共 8K
30、*8bit ROM 1片8K*8bit RAM 3片2K*8bit RAM 1片2)ROM芯片没R/W信号,只能读出信息,不用连接。存储器分成5个可独立访问的区域,即5页。8KB ROM为第1页,占用最低地址空间,3个8KB RAM分别为第2、3、4页,其地址是连续的。2KB RAM为第5页,它与前4页是不连续的。8KB的片内地址线为13根, 2KB的片内地址线为11根。高3位地址采用3:8译码器,产生14页的片选信号。,2018/10/21,计算机组成原理,24,CS,CS,CS,CS,CS,R/W,Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 74LS138 A B C,&,D0 - -
31、 -D7CPUR/WA0 - - - - - - A10A11A12A13A14A15MREQ,2018/10/21,计算机组成原理,25,第5页的地址分配应为产生片选 片内选址A15 A14 A13 A12 A11 A10 A9 A8 - A1 A0由于第5页的地址范围是F800HFFFFH,因此得A15 A14 A13 A12 A11 =11111,所以译码器输出取Y7(此时A15 A14 A13 =111),然后Y7与A12 A11 通过门电路产生片选信号。因此在产生第5页片选信号时,不能取Y4或Y5或Y6,只能取Y7。这是由于地址空间不连续的缘故。,2018/10/21,计算机组成原理
32、,26,4.5A某存储器数据总线宽度为32bit,存储周期为250ns 。试问该存储器的带宽是多少? 解:已知Tm=250ns,W=32bitBm=W*Fm=W/Tm =32bit/(250*10-9s)=128* 106 bit/s=16*106B/s,2018/10/21,计算机组成原理,27,5.1 指令字长16位,每个操作数的地址码长6位,指令分为无操作数、单操作数和双操作数三类。若双操作数指令有K条,无操作数指令有L条,问单操作数最多可能有多少条? 解:考虑到双操作数时的情况操作码的位数只能有4位即16-6-6=4位。 在没有无操作数指令时,单操作数指令最多可为:M=(24-K)*2
33、6条 在有无操作数指令L条时,单操作数指令最多可为:M=(24-K)*26条-L/ 26条 如题中改为有单操作数指令M条,求无操作数最多可能有多少条?其他条件不变。 解:L=(24-K)*26-M 26条,2018/10/21,计算机组成原理,28,5.2 基址寄存器的内容为2000H,变址寄存器的内容为03A0H,指令的地址码部分是3FH,当前正在执行的指令所在地址为2B00H,写出变址寻址(考虑基址)和相对寻址的访存有效地址。 解:变址寻址(考虑基址)的访存有效地址为2000H+03A0H+3FH=23DFH 相对寻址的访存有效地址=2B00H+3FH=2B3FH 5.3 接上题1)设变址
34、编址用于取数指令,相对编址用于转移指令,存储区内放的内容如下:写出从存储器中所取得数据以及转移地址。2)若采用直接编址,写出从存储器取出的数据。,2018/10/21,计算机组成原理,29,地址 内容003FH 2300H2000H 2400H203FH 2500H233FH 2600H23A0H 2700H23DFH 2800H2B00H 063FH 解:1)取出数据是(23DFH)=2800H转移地址为2B3FH2)如机内有基址寄存器的话为(203FH)=2500H如机内没有基址寄存器的话为(003FH)=2300H,2018/10/21,计算机组成原理,30,5.8已知Pentium微处
35、理器各段寄存器的内容如下:DS=0800H,CS=1800H,SS=4000H,ES=3000H。iisp字段的内容为2000H。请计算:1)执行MOV指令,且已知为直接寻址,请计算有效地址。 2)IP的内容为1440H,请计算出下一条指令的地址(假设顺序执行)。 3)今将某寄存器内容直接送入堆栈,请计算出接收数据的存储器地址。 答:1)8000H+2000H=A000H2)18000H+1440H=19440H3)40000H-2H=3FFFEH,2018/10/21,计算机组成原理,31,5.2A 什么是指令流?什么是数据流?在计算机中CPU是如何区别指令和数据的? 解:在计算机中有两股信
36、息流动,由存储器流向控制器的信息称为指令流,由存储器流向运算器的信息或反之的信息称为数据流。在计算机中CPU是靠时间区分指令和数据的。在指令周期中从存储器中取出的是指令,在执行周期中从存储器中取出的是数据。,2018/10/21,计算机组成原理,32,5.3A 某计算机字长为16位,存储器按字编址,方存指令如下:其中OP是操作码,M定义寻址方式:0表示立即寻址、1直接寻址、2间接寻址、3变址寻址、4相对寻址,A为形式地址。设PC和Rx分别为程序计数器和变址寄存器,字长为16位,问:1)该格式能定义多少种指令?2)各种寻址方式的寻址范围为多少字?3)写出各种寻址方式的有效地址EA的计算公式。,2
37、018/10/21,计算机组成原理,33,解答:1)操作码字段长度为5位,因此能定义32种操作;2)存址方式M及寻址范围:0方式时是1个字,即指令字;1时是256个字;2时是64K个字;3时是64K字;4时是256个字(PC值附近256个字)。 3)寻址方式M为0方式的寻址范围是EA=(PC)机操作数在指令码中;M为1时EA=A;为2时EA=(A);为3时EA=(Rx)+A;为4时EA=(PC)+A。,2018/10/21,计算机组成原理,34,6.2 设某计算机运算控制器逻辑图如书中图6.8,控制信号意义见书中表6.1,指令格式和微指令格式如下:指令格式微指令格式I 控制字段 I 下址字段其
38、中123位代表的123号控制信号见表6.1。试写出下述三条指令的微程序编码:1)JMP(无条件转移到(rs1)+disp)2)Load (从(rs1)+disp指令的内存单元取数,送rs保存)3)Store (把rs内容送到(rs1)+disp指示的内存单元)提示:先列出各指令执行步骤和每步所需控制信号,最后再写出编码。,2018/10/21,计算机组成原理,35,答:各指令执行步骤和每步所需控制信号详见书中174页。如: (1)取指微指令指令地址送地址总线PCAB(1)发访存控制命令:ADS(地址有效)(21), M/IO=1,(22) W/R=0(23)。从存储器取指令送数据总线。指令送指
39、令寄存器DBIR(5)程序计数器十1;PC1(3)(2)计算地址微指令取两个源操作数(计算地址用)rs1GR(8),(rs1)ALU (10), dispALU(4)。加法运算“十”(13)有效地址送地址寄存器;ALUAR(19)。(3)取数微指令数据地址送地址总线: ARAB(20)。发访存控制命令:ADS(21),MIO(22),WR(23)。由存储器将数据送数据总线DB。数据送数据寄存器DBDR(6),2018/10/21,计算机组成原理,36,(4)加法运算和传送结果微指令两源操作数送ALU:rsGR(9),(rs)ALU(11); DRALU(12)加法运算“”(13)送结果ALUG
40、R(17)。根据题意,1)JMP指令只需第二步,故需微指令2,4,8,10,13,19其编码为 0101 0001 0100 1000 0010 0XX 2)LOAD需第2,3,4步,故 0001 0001 0100 1000 0010 0XX0000 0100 0000 0000 0001 1100000 0000 1001 1000 1000 0XX 3)STORE需第2,3,4步故 0001 0001 0100 1000 0010 0XX0000 0000 1010 1000 0100 0XX0000 0010 0000 0000 0001 111 X表示可为任意值,当ADS=0时,微指
41、令最后两位不起作用。,2018/10/21,计算机组成原理,37,6.7已知某机器采用微程序控制方式,其控制存储器容量为51248位。微指令字长48位,微指令可在整个存储器中实现转移,可控制微程序转移的条件共4个(直接控制方式),微指令采用水平型格式,如图所示。I 操作字段 I 顺序控制 I1)微指令中的三个字段分别应为多少位?2)画出围绕这种微指令格式的微程序控制器逻辑框图。 答:从题中可知下地址字段9位(512字节); 判别测试字段4位,微指令操作控制字段4894=35位。2)略,2018/10/21,计算机组成原理,38,6.15 设有主频为16MHZ的微处理器,平均每条指令的执行时间为
42、两个机器周期,每个机器周期有两个时钟组成。问:1)存储器为0等待,求出机器速度?2)假设每两个机器周期中有一个访存周期,需插入1个时钟周期,求出机器的速度。 答:1)16MHZ/(2*2)=4MIPS2)16MHZ/(23)=3.2MIPS (书中为2.67MIPS) 6.16 微机A和B是采用不同主频的CPU芯片,片内逻辑电路完全相同。若A机的主频为8MHZ,b机为12Mhz。则A机的CPU主频周期位多少us。如A机的CPU平均指令执行速度为0.4MIPS,那么A机的平均指令周期为多少us? B机的平均指令执行位多少MIPS. 答:1)1/8MHZ=0.125us2) 1/0.4MIPS=2.5 us3) 0.4128=0.6MIPS,2018/10/21,计算机组成原理,