《计算机组成原理部分作业答案.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理部分作业答案.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、习题课补充例题与部分作业答案2.6第三章作业3.3 略。注意手算乘法求和时越位进位。3.6 见教材P37。注意真值负数以负号(-)表示解:部分积 乘数 说明 00 0000 1010 +00 0000 末位为0,加0 00 0000 00 0000 0101 右移1位 +00 1010 末位为1,加X 00 1010 00 0101 0010 右移1位 +00 0000 末位为0,加0 00 0101 00 0010 1001 右移1位 +00 1010 末位为1,加X 00 1100 00 0110 0100 右移1位 +11 0110 Y0=1,加-X修正 11.1100 0100 X*Y
2、补=1.1100 0100 X*Y=-0.0011 11003.18 用补码一位乘法计算 X=0.1010,Y=-0.0110的积X*Y。补码一位乘法,X补=00.1010,-X补=11.0110,Y补=1.1010解:部分积 乘数 附加位 说明 00 0000 11010 0 +00 0000 00,加0 00 0000 00 0000 01101 0 右移1位 +11 0110 01,加-X补 11 0110 11 1011 00110 1 右移1位 +00 1010 10,加X补 00 0101 00 0010 10011 0 右移1位 +11 0110 01,加-X补 11 1000
3、11 1100 01001 1 右移1位 +00 0000 11,加0 11 1100 0100X*Y补=1.1100 0100,X*Y=-0.0011 11003.18 用补码一位乘法计算 X=0.1010,Y=-0.0110的积X*Y。布斯法,X=00.1010,-X=11.0110,Y=1.10103.19 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
4、 +-Y 补 1 1.1 0 1 1 1 0 0 0 0 0 0 不够减,商上0 1 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 够减商上1 0 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 够减商上1 0 1.0 1 0 1
5、0 0 0 1 0 1 0 左移被除数(余数)商 操作说明 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,既是负号 故商值为 -0.10110 余数为-0.00000101103.2
6、0 用原码两位乘法求X*Y。已知X=0.1011,Y=0.1101。方案选择,检查和纠正一位错,检查两位错。按照海明码校验位的条件:2r-1 k+r k=8,可得 r=5.25-1=16 8+5=13设海明码为:H13H1,数据位为D8D1校验位为P5P1.H13 H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1 P5 D8 D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1 P1=D1 D2 D4 D5 D7 P2=D1 D3 D4 D6 D7 P3=D2 D3 D4 D8 P4=D5 D6 D7 D8 P5=D1D2D3D4D5D6D7D8P1P2
7、P3P43.27 设有8位有效信息,编制海明校验线路,说明编码方法,分析所选方案有怎样的检错与纠错能力。若8位信息是01101101,海明码是多少?S1=P1 D1 D2 D4 D5 D7S2=P2 D1 D3 D4 D6 D7S3=P3 D2 D3 D4 D8S4=P4 D5 D6 D7 D8 P5=D1D2D3D4D5D6D7D8P1P2P3P4若8位信息位是01101101,海明码如下:P1=10101=1 P2=11111=1 P3=0110=0 P4=0110=0 P5=101101101100=1 H13 H12 H11 H10 H9 H8 H7 H6 H5 H4 H3 H2 H1
8、 P5 D8 D7 D6 D5 P4 D4 D3 D2 P3 D1 P2 P1 1 0 1 1 0 0 1 1 0 0 1 1 13.27 设有8位有效信息,编制海明校验线路,说明编码方法,分析所选方案有怎样的检错与纠错能力。若8位信息是01101101,海明码是多少?第四章作业4.5 有一个512K16的存储器,由64K1的2164RAM(芯片内是4个128128结构),问:(1)总共需要多少个RAM芯片?总共需要:(512K16)/(64K1)=128(2)采用分散刷新方式,单元刷新间隔不超过2ms,则刷新信号的周期是多少?刷新时,2164中4个128128矩阵同时刷新,所以每128行为单
9、元的刷新次数,2ms内需要128个刷新周期,每个周期长:2ms/128=15.625s 4.6 某机器中,已知地址空间为0000H1FFFH的ROM区域,现在再用RAM芯片(8K4)形成一个16K8的RAM区域,起始地址为2000H,假设RAM有CS和WE控制端。CPU地址总线为A15A0,数据总线为D7D0,控制信号为R/W,MREQ,要求画出逻辑图。解:1)地址空间分析:如果一个CPU的地址线是A15A0,总地址空间为216,十六进制表示:0000HFFFFH。ROM占用的地址空间为0000H1FFFH,变为2进制:0000 0000 0000 0000 0001 1111 1111 11
10、11 空间的范围是213,就是 23210=8K 的存储空间,CPU的地址线是D7D0,8根,所以,ROM的容量是8K8。2)芯片数量和字位扩展:由于从RAM芯片容量小于RAM区容量,需要字扩展;由于RAM芯片数据线4位,小于RAM区字长8,需要位扩展。一个芯片的容量是8K4,RAM区的容量是16K8,所以共需要芯片:(16K8)/(8K4)=4 片。扩展方法:将2个RAM芯片重叠,构成一组(2片)8K8 容量的RAM芯片组,实现位扩展。将2组RAM芯片,译码选择每组芯片,构成16K8的RAM区,实现字扩展。3)地址空间的分配 芯片地址线是A12A0,总地址空间为216。RAM区的容量是16K
11、8,RAM区的地址线是A13A0,占用地址用十六进制表示:2000H5FFFH=2000H3FFFH(8KB)+4000H5FFFH(8KB)译码最小单位确定,首先确定芯片的最小地址空间=A12A0,为了今后扩充芯片的灵活性,将剩余的地址线全部参加译码,CPU地址线是A15A0,减去芯片的地址线,剩余的地址线为A15、A14、A13,(如果剩余4根地址线,就采用4-16译码),采用3-8译码,所以将整个CPU的64KB(A15A0)地址空间平均分割为8个8KB空间(88KB=64KB)。这样,每个芯片占用的地址空间如下:ROM芯片:0000H1FFFH 译码器输出:CS0#RAM(1#):20
12、00H3FFFFH 译码器输出:CS1#RAM(2#):4000H5FFFH 译码器输出:CS2#空闲:6000HFFFFH 译码器输出:CS3#CS7#4)连线图 MREQ#A15 A14 A13 A12A0CPU D7D0 R/W#OE#译码器A15A14A13 CS#ROM8K8 CS#RAM 8K4RAM 8K4 CS#RAM 8K4RAM 8K4CS0#CS1#CS2#CS7#4.12 设某主存储器访问一次存储器的时间如下:传送地址1个时钟周期,读写4个时钟周期,数据传送1个时钟周期,采用下述3种主存结构读写16个字的数据块,各需要多少时钟周期?(1)单字宽主存,一次只能读写一个字;
13、(2)4字宽主存,一次可读写4个字,但CPU与主存的数据传送宽度为1个字;(3)4体交叉存储器,每个存储体为单字宽。解:(1)顺序方式:单字宽主存,一次读/写1个字,只能采用串行方式进行读写,16个字所需时间为:(1+4+1)16=96;(2)单体多字:4字宽主存,一次可读写4字,16个字需读写4次,但最后一次读出还需要增加3个时钟周期才能将数据送到CPU(前三次CPU收到四个返回数据中第一个就开始发下一次的地址。因此,对于前三次,收到的后三个数据传送时间与后面传送地址时钟周期、读写时钟周期重叠,不计算在总时间内):所需时间=4*6+3=27;(3)多体交叉:4体交叉存储器,每个存储体为单字宽
14、:每个体访问4次,最后再加上3个时钟传送数据。总共需要 6*4+3=27 个时钟周期。(详见下图)最后一次地址到达模块三开始读写模块二开始读写模块一开始读写模块四开始读写模块一开始传输数据模块一数据传输结束,模块二开始传输数据模块一读写结束模块二读写结束模块三读写结束模块四读写结束模块二数据传输结束,模块三开始传输数据模块三数据传输结束,模块四开始传输数据模块四传输数据结束第二十七时钟周期第二十四时钟周期第十九时钟周期图 多体交叉存多体交叉存储器器最后一次最后一次读写写时序序第五章作业5.2 基址寄存器的内容为2000H,变址寄存器内容03A0H,指令的地址码部分是3FH,当前正在执行的指令所
15、在地址为2B00H,请求出变址编址(考虑基址)和相对寻址两种情况的访问有效地址。解:1)变址编址:EA=2000H+03A0H+003FH =23DFH 2)相对寻址:EA=2B00H+3FH =2B3FH补充,如果指令地址码部分是:8FH EA=2B00H+FF8FH =2A8FH 5.3 接上题。(1)设变址编址用于取指令,相对编址用于转移指令,存储器内存放的内容如下:地址 内容 003FH 2300H 2000H 2400H 203FH 2500H 233FH 2600H 23A0H 2700H 23DFH 2800H 2B00H 063FH 请写出从存储器中所取得的数据以及转移地址。解
16、:变址编址:操作数=2800H 相对寻址:转移地址=2B3FH5.3 接上题。(2)若采用直接编址,请写出从存储器中取出的数。考虑基址寄存器:EA=2000H+03A0H 操作数=(23A0H)=2700H 不考虑基址寄存器:EA=03A0H 操作数=(03A0H)=2300H5.8 已知Pentium微处理器各段寄存器的内容如下:DS=0800H,CS=1800H,SS=4000H,ES=3000H。又disp字段的内容为2000H。请计算:(1)执行MOV指令,且已知为直接寻址,请计算有效地址。(2)IP(指令指针)的内容为1440,请计算出下一条指令的地址(假设顺序执行)。(3)今将某寄
17、存器内容直接送入堆栈,请计算出接收数据的存储器地址。解:(1)有效地址=DS*10H+DISP=8000H+2000H=A000H(2)下一条指令的地址=CS*10H+1440+“1”=19441H(3)栈顶=SS*10H+SP-2=40000H+0000H-2=3FFFEH第六章作业6.1 CPU结构如下图所示,其中有一个累加寄存器AC、一个状态条件寄存器和其他4个寄存器,各部分之间的连线表示数据通路,箭头表示信息传送方向。要求:(1)标明图中a、b、c、d这4个寄存器的名称。(2)简述指令从主存取出到产生控制信号的数据通路。(3)简述数据在运算器和主存之间进行存/取访问的数据通路。6.2
18、设某计算机的运算控制器逻辑图6.6,控制信号见表6.1,指令格式如下:试写出下述三条指令的微操作信号。(1)JMP(无条件转移到(rs1)+disp)(2)load(从(rs1)+disp指示的内存单元取数,送rs保存)(3)store(把rs的内容送到(rs1)+disp指示的内存单元)计算地址微指令rs1-GR,(rs1)-ALU,disp-ALU,“”ALU-PC解:(1)JMP(无条件转移到(rs1)+disp指定的地址)首先确定微指令条数,取指微指令,必不可少,而且必须是第一条微指令。接下来,需要做(rs1)+disp-PC操作参考图6.6,需要使用ALU一次,故再需要一条微指令。微
19、操作:rs1-GR,(rs1)-ALU,加法器左操作数disp-ALU加法器右操作数“”ALU-PC1)取指微指令 PC-AB ADS=1 M/IO#=1 W/R#=0 DB-IR PC+1(2)load(从(rs1)+disp指示的内存单元取数,送rs保存)首先确定微指令条数,取指微指令,必不可少,而且必须是第一条微指令。接下来,需要做(rs1)+disp操作,然后根据计算结果访问存储器,取回的操作数还需要保存到寄存器rs中。参考图6.6,使用一次ALU需要一条微指令,访问存储器还需要一条微指令。必须先算地址,再访问存储器,最后保存结果。还需要计算地址微指令,访问存储器微指令,保存结果微指令
20、。1)取指微指令(略)2)计算地址微指令rs1-GR,(rs1)-ALU,disp-ALU,“”ALU-AR3)访问存储器微指令 AR-AB,ADS=1,M/IO#=1 W/R#=0,DB-DR4)保存结果微指令 DR-ALU,rs-GR,“+”ALU-rs说明:ALU的左操作数是DR内容,ALU的右操作数没有,就等于送做加法就等于把DR-rs(3)store(把rs的内容送到(rs1)+disp指示的内存单元)解:首先确定微指令条数,取指微指令,必不可少,而且必须是第一条微指令。接下来,需要做(rs1)+disp操作,然后根据计算结果访问存储器。参考图6.8,使用一次ALU需要一条微指令,访
21、问存储器还需要一条微指令。必须先算地址,再访问存储器。但是写存储器时,必须保证数据要在DB之上,而到达DB只能通过DR,所以写存储器之前还要占用ALU一次,还需要一条微指令。还需要计算地址微指令,送操作数微指令,访问存储器微指令。1)取指微指令(略)2)计算地址微指令rs1-GR,(rs1)-ALU,disp-ALU,“”ALU-AR316.5 某机有8条微指令I1I8,每条微指令所含的微命令控制信号如下表所示。aj分别代表10种不同性质的微命令信号,假设一条微指令的操作控制字段为8位,请安排微命令的控制字段格式,并将全部微指令代码化。32解:题中有10不同性质的微命令,但微指令的操作控制字段
22、只有8位,不能采用直接控制法。选用字段直接编译法比较合适。将互斥的微命令安排在同一小段,b、i、j互斥,安排在同一小段内,e、f、h也互斥,也安排在一个小段内;其它微命令(a、c、d、g)因为相容,作为直接控制微命令。于是形成如下微指令控制字段格式.小段小段1 1小段小段2 2译码输出译码输出微命令微命令译码输出译码输出微命令微命令0000无无0000无无0101b b0101e e1010i i1010f f1111j j1111h h33将8条微指令代码化可以得到:lI1:11100101a c d g b e lI2:10110010a c d gf lI3:00000111a c d
23、g b h lI4:01000000a c d g lI5:01011001a c d g i e lI6:10001111a c d g j h lI7:01100011a c d gh lI8:10000111a c d g b h小段小段1 1小段小段2 2译码输出译码输出微命令微命令译码输出译码输出微命令微命令0000无无0000无无0101b b0101e e1010i i1010f f1111j j1111h h34补充:补充:微程序控制单元的设计举例微程序控制单元的设计举例微程序控制器的操作控制信号由微指令产生。微程序控制单元的微程序控制器的操作控制信号由微指令产生。微程序控制单
24、元的设计,主要任务是编写各条机器指令的微程序设计,主要任务是编写各条机器指令的微程序 确定微程序的控制方式确定微程序的控制方式:根据设计要求,确定是采用水平微程:根据设计要求,确定是采用水平微程序设计、还是垂直微程序设计?微指令是串行执行、还是并行执序设计、还是垂直微程序设计?微指令是串行执行、还是并行执行?行?拟定微指令系统拟定微指令系统:确定控制中有哪些微指令?用什么样的格式:确定控制中有哪些微指令?用什么样的格式表示这些微指令?比如,微指令字段的划分、编码方式的选择、表示这些微指令?比如,微指令字段的划分、编码方式的选择、初始微地址和后继微地址的形成方法等初始微地址和后继微地址的形成方法
25、等 编制微程序编制微程序:对微指令系统、微指令格式进行核对、审查、修:对微指令系统、微指令格式进行核对、审查、修改、优化之后,便可以编制机器指令的微程序改、优化之后,便可以编制机器指令的微程序 微程序代码化微程序代码化:将修改完善的微程序转换成二进制代码:将修改完善的微程序转换成二进制代码 写入控制存储器写入控制存储器:最后将二进制代码按地址写入控制存储器:最后将二进制代码按地址写入控制存储器35举例(一)举例(一)例例1、某计算机为双总线结构,所有数据传送都通过、某计算机为双总线结构,所有数据传送都通过ALU,ALU具有下列功能,具有下列功能,CPU结构如图所示。结构如图所示。ALU六种功能
26、:六种功能:F=A;F=BF=A+1;F=B+1F=A-1;F=B-1 写出转子程序指令(写出转子程序指令(JSR)取指和执行周期的微操作。)取指和执行周期的微操作。JSR指令占两个字,第一个字是操作码,第二个字是子程序指令占两个字,第一个字是操作码,第二个字是子程序的入口地址。返回地址保存在堆栈中,堆栈指针始终指向栈的入口地址。返回地址保存在堆栈中,堆栈指针始终指向栈顶。在图中,顶。在图中,Y为暂存器,为暂存器,PC为程序计数器,为程序计数器,MAR为地址为地址寄存器,寄存器,MDR为数据缓冲寄存器,为数据缓冲寄存器,IR为指令寄存器。为指令寄存器。解:转子程序指令的第一个为操作码、第二个为
27、子程序的入口地址。解:转子程序指令的第一个为操作码、第二个为子程序的入口地址。PCB,F=B,FMAR,Read ;读指令的第一个字 MDRB,F=B,FIR PCB,F=B+1,FPC PCB,F=B,FMAR,Read ;读指令的第二个字 MDRB,F=B,FY PCB,F=B+1,FPC SPB,F=B-1,FSP,FMAR ;保护断点并修改栈指针 PCB,F=B,FMDR,Write YA,F=A,FPC ;子程序首地址送PC本计算机中,九组微操作不同一周期,可构成水平型微指令本计算机中,九组微操作不同一周期,可构成水平型微指令工作之一设计微操作序列37举例(二)举例(二)例二、图例二
28、、图32为一微程序流程,每个为一微程序流程,每个方框代表一条微指令,分别用字符方框代表一条微指令,分别用字符AP表示其执行的微操作,根据给表示其执行的微操作,根据给定的微程序流程设计微指令的顺序定的微程序流程设计微指令的顺序控制字段(控制字段(BCF和和BAF),并为每),并为每条微指令分配一个地址。条微指令分配一个地址。解:程序有两个分支处,第一处(C)有4个分支,由机器指令操作码的I1I0两位决定后继地址,分别指向4条不同的指令;第二处(E)有2个分支,根据运算结果Z的值决定,分别指向2条不同指令因此,微指令顺序控制部分中的测试字段应因此,微指令顺序控制部分中的测试字段应有有2位来分别对应
29、位来分别对应2处测试。又因为共有处测试。又因为共有16条微指令,所以下址字段需要条微指令,所以下址字段需要4位。位。微地址分配的关键是带有分支的微指令。下址字段具有一定的约束条件,一般要选择测试条件所控制的那几位为0,目的是简化地址的修改逻辑。由于微指令C按机器指令码I1I0实现4路分支,所以微指令C的下址的约束条件可选择末两位为0。若C的下址选择为0100。后继的4条微指令地址就分别为0100、0101、0110、0111,末两位就是I1I0的值。Z按同样的办法分配,后继微地址选择1010、1011。工作之二后继地址分配39后继地址分配举例后继地址分配举例余下的微指令地址没有约束条余下的微指
30、令地址没有约束条件,可以任意分配。但件,可以任意分配。但一般按一般按微程序流程从小到大,把控制微程序流程从小到大,把控制存储器中没有分配的微地址分存储器中没有分配的微地址分配给不同的微指令配给不同的微指令,就得到全,就得到全部微指令地址。部微指令地址。请注意区分微指令自己的微地址和它所指向的下一条微指令的微地址!40微地址(微地址(自己的自己的)微指令微指令操作控制字段操作控制字段顺序控制字段顺序控制字段二进制二进制十进制十进制微命令微命令测试判断测试判断下地址下地址00000A00000100011B00001000102CXX010000113E0X101001004D0000110101
31、5H00100001106L00100101117P00100110008I00101110019M001110101010F001100101111J001101110012G000000110113K000000111014N001111111115O000000ADD指令的第一个字是操作码和寄存器地址,第二个字是立即数。JMP指令第一个字是操作码,第二个字是转移的直接地址。补充:硬布线控制器设计举例例:例:设计实现设计实现ADD和和JMP指令的硬布线控制器指令的硬布线控制器1.指令系统模型计算机的系统结构框图 三总线:主存总线,负责CPU与主存的信息传送IO总线,负责IO设备之间以及IO
32、设备与CPU之间的信息传送DMA总线,直接主存访问总线,它负责高速外部设备与主存的信息传送单、双、三总线结构微机系统总线模型计算机的系统结构框图(1)ADD指令执行分为指令执行分为6个机器周期完成:个机器周期完成:M0:将当前指令地址送地址寄存器,程序计数器指向指令下一字地址PC-B、B-AR,PC+1;M1:完成从内存中取出指令送指令寄存器,并由指令译码器译码;M-R、B-IR,J1;(IR)=01010000ADDM2:将指令第二个字的地址送地址寄存器,且PC指向下一指令;PC-B、B-AR,PC+1;ADDM3:从内存取出指令的第二个字即立即数,并送运算单元ALU;M-R,B-DA1;D
33、A1=00000110ADDM4:将另一个操作数R0的内容送运算单元ALU;R0-B,B-DA2;DA2=(R0)ADDM5:完成运算单元的加法操作并将结果存放在寄存器R0;ALUS3S2S1S0MCi(F=A+B),ALU-B,B-R0;2、指令执行过程(2)JMP指令执行分为指令执行分为4个机器周期完成个机器周期完成第一和第二个机器周期完成与ADD指令一样(该机器所有指令都相同)的操作,也就是取指令的操作。M0:PC-B,B-AR,PC+1;(取指令地址)M1:M-R、B-IR,J1;(IR)=10000000(取指令并译码)第三个机器周期M2实现将指令的第二个字地址送地址寄存器,且使程序
34、计数器指向下一条指令地址;JMPM2:PCAR,PC+1PC;(取指令第二字地址)第四个机器周期M3完成从内存取出指令的第二个字即转移地址送PC,实现转移。JMPM3:M-R,B-PC;PC=00000100(取转移地址并执行转移)取指令公共操作:取指令公共操作:M0:PC-B#,B-AR,PC+1;M1:M-R,B-IR,;ADD指令:指令:ADD M2:PC-B#,B-AR,PC+1;ADD M3:M-R#,B-DA1;ADD M4:R0-B#,B-DA2;ADD M5:ALUS3S2S1S0MCi(F=A加B),ALU-B#,B-R0;JMP指令:指令:JMP M2:PC-B#,B-AR
35、,PC+1;JMP M3:M-R#,B-PC#;模型计算机的硬布线控制器的电路框图 51五条指令的硬布线控制部件硬布线控制部件指令流程图:一个指令流程图:一个方框方框代表一个代表一个CPU周期,周期,菱形菱形符号表示某种判符号表示某种判别或测试,时间上依附于与它相邻的前面一个方框的别或测试,时间上依附于与它相邻的前面一个方框的CPU周期,周期,不单独占用时间。不单独占用时间。“”表示公操作,如指令执行结束后,表示公操作,如指令执行结束后,CPU对外设中断请求的处理等。对外设中断请求的处理等。Q5 Q4 Q3 Q2 Q1 Q0CP EP LM ER LI EI LA EA SU EU LB LOCP EP LM ER LI EI LA EA SU EU LB LO&I7 I6 I5 I4CLAADDSTAJMPNOPT0 T1 T2 T3 T4 T5CLKCLR&11T5T4T3T2T1T0五条指令硬布线硬布线控制部件:控制部件:1111I7 I6 I5 I4IR译码器译码器控制矩阵控制矩阵
限制150内