x-y =2
101
-100
×0.111 000
100
(3)x=2×(-0.100 101),y=2×(-0.001 111)
[x]补=0,101;1.011 011, [y]补=0,100;1.110 001 1)对阶:
[?E]补=00,101+11,100=00,001 >0,应Ey向Ex对齐,则: [Ey]补+1=00,100+00,001=00,101=[Ex]补 [y]补=0,101;1.111 000(1) 2)尾数运算:
[Mx]补+[My]补= 11.011011+ 11.111000(1)= 11.010011(1) [Mx]补+[-My]补= 11.011011+ 00.000111(1)= 11.100010(1) 2) 结果规格化:
[x+y]补=00,101;11.010 011(1),已是规格化数
[x-y]补=00,101;11.100 010(1)=00,100;11.000 101 (尾数左规1次,阶码减1)
4)舍入:
[x+y]补=00,101;11.010 011(舍) [x-y]补 不变 5)溢出:无
101
则:x+y=2×(-0.101 101)
100
x-y =2×(-0.111 011)
32. 设机器字长为16位,分别按4、4、4、4和5、5、3、3分组后,
(1)画出按两种分组方案的单重分组并行进位链框图,并比较哪种方案运算速度快。
(2)画出按两种分组方案的双重分组并行进位链框图,并对这两种方案进行比较。
(3)用74181和74182画出单重和双重分组的并行进位链框图。 解:(1)4—4—4—4分组的16位单重分组并行进位链框图见教材286页图6.22。
5—5—3—3分组的16位单重分组并行进位链框图如下:
(2)4—4—4—4分组的16位双重分组并行进位链框图见教材289页图6.26。 5—5—3—3分组的16位双重分组并行进位链框图如下:
5—5—3—3分组的进位时间=2.5ty?3=7.5ty; 4—4—4—4分组的进位时间=2.5ty?3=7.5ty; 可见,两种分组方案最长加法时间相同。
结论:双重分组并行进位的最长进位时间只与组数和级数有关,与组内位数无关。
(3)单重分组16位并行加法器逻辑图如下(正逻辑):
注意: 1)74181芯片正、负逻辑的引脚表示方法;
2)为强调可比性,5-5-3-3分组时不考虑扇入影响;
3)181芯片只有最高、最低两个进位输入/输出端,组内进位无引脚; 4)181为4位片,无法5-5-3-3分组,只能4-4-4-4分组;
5)单重分组跳跃进位只用到181,使用182的一定是双重以上分组跳
跃进位;
6)单重分组跳跃进位是并行进位和串行进位技术的结合;双重分组跳
跃进位是二级并行进位技术;特别注意在位数较少时,双重分组跳跃进位可以采用全先行进位技术实现;位数较多时,可采用双重分组跳跃进位和串行进位技术结合实现。
第7章
1. 什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及与硬件结构之间存在着密切的关系? 答:参考P300。
2. 什么叫寻址方式?为什么要学习寻址方式? 答:参看P310。
3. 什么是指令字长、机器字长和存储字长? 答:略。
4. 零地址指令的操作数来自哪里??各举一例说明。 答:零地址指令的操作数来自ACC,为隐含约定。
- 11 -
在一地址指令中,另一个操作数的地址通常可采用ACC隐含寻址方式获得。
5. 对于二地址指令而言,操作数的物理地址可安排在什么地方?举例说明。 答:对于二地址指令而言,操作数的物理地址可安排在寄存器内、指令中或内存单元内等。
8. 某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有M条,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种? 解:1)若采用定长操作码时,二地址指令格式如下: OP(4位) A1(6位) 4A2(6位) (2)该指令直接寻址的最大范围;
(3)一次间址和多次间址的寻址范围; (4)立即数的范围(十进制表示); (5)相对寻址的位移量(十进制表示); (6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题?
(7)如何修改指令格式,使指令的寻址范围可扩大到4M?
(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。 解:(1)单字长一地址指令格式:
OP(7位) M(3位) A(6位) OP为操作码字段,共7位,可反映108种操作; M为寻址方式字段,共3位,可反映6种寻址操作; A为地址码字段,共16-7-3=6位。
6
(2)直接寻址的最大范围为2=64。
16
(3)由于存储字长为16位,故一次间址的寻址范围为2;若多次间址,需用
15
存储字的最高位来区别是否继续间接寻址,故寻址范围为2。 (4)立即数的范围为-32——31(有符号数),或0——63(无符号数)。 (5)相对寻址的位移量为-32——31。
(6)上述六种寻址方式中,因立即数由指令直接给出,故立即寻址的指令执行时间最短。间接寻址在指令的执行阶段要多次访存(一次间接寻址要两次访存,多次间接寻址要多次访存),故执行时间最长。变址寻址由于变址寄存器的内容由用户给定,而且在程序的执行过程中允许用户修改,而其形式地址始终不变,故变址寻址的指令便于用户编制处理数组问题的程序。相对寻址操作数的有效地址只与当前指令地址相差一定的位移量,与直接寻址相比,更有利于程序浮动。
(7)方案一:为使指令寻址范围可扩大到4M,需要有效地址22位,此时可将单字长一地址指令的格式改为双字长,如下图示: OP(7位) MOD(3位) A(低16位) 方案二:如果仍采用单字长指令(16位)格式,为使指令寻址范围扩大到4M,可通过段寻址方案实现。安排如下: 硬件设段寄存器DS(16位),用来存放段地址。在完成指令寻址方式所规定
A(高6位) 设二地址指令有K种,则:K=2-M-N
当M=1(最小值),N=1(最小值)时,二地址指令最多有:Kmax=16-1-1=14
种
3) 若采用变长操作码时,二地址指令格式仍如1)所示,但操作码长度可
4612
随地址码的个数而变。此时,K= 2 -(N/2 + M/2 );
612612
当(N/2 + M/2 )?1时(N/2 + M/2 向上取整),K最大,则二地址指令最多有:Kmax=16-1=15种(只留一种编码作扩展标志用。)
9. 试比较间接寻址和寄存器间接寻址。 答:略。
10. 试比较基址寻址和变址寻址。 略。
11. 画出先变址再间址及先间址再变址的寻址过程示意图。 解:1)先变址再间址寻址过程简单示意如下: EA=[(IX)+A],IX?(IX)+1
2)先间址再变址寻址过程简单示意如下:EA=(IX)+(A),IX? (IX)+1
16. 某机主存容量为4M?16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:(1)画出一地址指令格式并指出各字段的作用;
- 12 -
的寻址操作后,得有效地址EA(6位),再由硬件自动完成段寻址,最后得22位物
6
理地址。 即:物理地址=(DS)?2 + EA
注:段寻址方式由硬件隐含实现。在编程指定的寻址过程完成、EA产生之后由硬件自动完成,对用户是透明的。
方案三:在采用单字长指令(16位)格式时,还可通过页面寻址方案使指
令寻址范围扩大到4M。安排如下: 硬件设页面寄存器PR(16位),用来存放页面地址。指令寻址方式中增设页面寻址。当需要使指令寻址范围扩大到4M时,编程选择页面寻址方式,则:EA =(PR)‖A (有效地址=页面地址“拼接”6位形式地址),这样得到22位有效地址。
(8)为使一条转移指令能转移到主存的任一位置,寻址范围须达到4M,除了采用(7) 方案一中的双字长一地址指令的格式外,还可配置22位的基址寄存器或22位的变址寄存器,使EA = (BR) + A (BR为22位的基址寄存器)或EA =(IX)+ A(IX为22位的变址寄存器),便可访问4M存储空间。还可以通过16位的基址寄存器左移6位再和形式地址A相加,也可达到同样的效果。 总之,不论采取何种方式,最终得到的实际地址应是22位。
19. 某CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的指令系统。假设指令字长等于机器字长,试回答以下问题:
(1)如果主存可直接或间接寻址,采用寄存器—存储器型指令,能直接寻址的最大存储空间是多少?画出指令格式并说明各字段的含义。
(2)在满足(1)的前提下,如果采用通用寄存器作基址寄存器,则上述寄存器—存储器型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间? 解:(1)如采用RS型指令,则此指令一定是二地址以上的地址格式,指令格式如下:
OP(6位) R(5位) 6寄存器用作基址寄存器。指令格式变为: OP(6位) 源R(5位) I(1位) X(1位) 目标R(5位) A(14位) 增加寻址特征位X,当X=1时,以目标寄存器R作为基址寄存器进行基址寻址。
32
基址寻址可访问存储空间为:2字。
第8章
1. CPU有哪些功能?画出其结构框图并简要说明各个部件的作用。 答:参考P328和图8.2。
2. 什么是指令周期?指令周期是否有一个固定值?为什么? 解:指令周期是指取出并执行完一条指令所需的时间。
由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。
3. 画出指令周期的流程图,分析说明图中每个子周期的作用。 答:参看P343及图8.8。
4. 设CPU内有下列部件:PC、IR、SP、AC、MAR、MDR和CU。
(1)画出完成间接寻址的取数指令LDA@X(将主存某地址单元X的内容取至AC中)的数据流(从取指令开始)。 (2)画出中断周期的数据流。
解:CPU中的数据流向与所采用的数据通路结构直接相关,不同的数据通路中的数据流是不一样的。常用的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单的机器中。
为简单起见,本题采用单总线将题中所给部件连接起来,框图如下:
I(1位) A(20位) 操作码字段OP占6位,因为2>=64;
5
寄存器编号R占5位,因为2>=32;
间址位I占1位,当I=0,存储器寻址的操作数为直接寻址,当I=1时为间接寻址;
20
形式地址A占20位,可以直接寻址2字。
(2)如采用基址寻址,则指令格式中应给出基址寄存器号,以指定哪一个通用
- 13 -
busPCMARSPMDRCUIRAC地址线数据线控制线?
(1)LDA@X指令周期数据流程图:
PC→MARM(MAR)→MDR(MDR)→IRPC+1→PCAd(IR)→MARM(MAR)→MDRMDR→Ad(IR)Ad(IR)→MARM(MAR)→MDRMDR→AC 2)中断周期流程图如下:
SP-1→SPSP→MARPC→MDRMDR→M(MAR)向量地址→PC0→EINT
注:解这道题有两个要素,首先要根据所给部件设计好数据通路,即确定信息流动的载体。其次选择好描述数据流的方法,无论采用什么样的表达方式,其关键都要能清楚地反映数据在通路上流动的顺序,即强调一个“流”字。较好的表达方式是流程图的形式。
5. 中断周期前是什么阶段?中断周期后又是什么阶段?在中断周期CPU应完成什么操作?
答:中断周期前是执行周期,中断周期后是取指周期。在中断周期,CPU应完成保存断点、将中断向量送PC和关中断等工作。
7. 什么叫系统的并行性?粗粒度并行和细粒度并行有何区别?
答:所谓并行性包含同时性和并发性。同时性是指两个或两个以上的事件在同一时刻发生,并发性是指两个或多个事件在同一时间段发生。即在同一时刻或同一时间段内完成两个或两个以上性质相同或性质不同的功能,只要在时间上存在相互重叠,就存在并行性。
并行性又分为粗粒度并行和细粒度并行两类。粗粒度并行是指在多个处理机上分别运行多个进程,由多台处理机合作完成一个程序,一般用算法实现。细粒度并行是指在处理机的指令级和操作级的并行性。
8. 什么是指令流水?画出指令二级流水和四级流水的示意图,它们中哪个更能提高处理机速度,为什么?
答:指令流水是指将一条指令的执行过程分为n个操作时间大致相等的阶段,每个
- 14 -
(阶段由一个独立的功能部件来完成,这样n个部件就可以同时执行n条指令的不同阶段,从而大大提高CPU的吞吐率。
指令二级流水和四级流水示意图如下:
IF,IDEX,WRIF,IDEX,WRIF,ID二级指令流水示意图EX,WRIF IDEX WREX WREX WRIF IDIF ID程序D服务A服务B服务C服务B服务C服务0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 t/usB与C请求D请求B服务D服务A服务B服务四级指令流水示意图
四级流水更能提高处理机的速度。分析如下:
假设IF、ID、EX、WR每个阶段耗时为t,则连续执行n条指令
采用二级流水线时,耗时为:4t+(n-1)2t=(2n+2)t 采用四级流水线时,耗时为:4t+(n-1)t=(n+3)t
在n>1时,n+3<2n+2,可见四级流水线耗时比二级流水线耗时短,因此更能提高处理机速度。
17. 在中断系统中INTR、INT、EINT三个触发器各有何作用?
解:INTR——中断请求触发器,用来登记中断源发出的随机性中断请求信号,以便为CPU查询中断及中断排队判优线路提供稳定的中断请求信号。
EINT——中断允许触发器,CPU中的中断总开关。当EINT=1时,表示允许中断(开中断),当EINT=0时,表示禁止中断(关中断)。其状态可由开、关中断等指令设置。
INT——中断标记触发器,控制器时序系统中周期状态分配电路的一部分,表示中断周期标记。当INT=1时,进入中断周期,执行中断隐指令的操作。
24. 现有A、B、C、D四个中断源,其优先级由高向低按A、B、C、D顺序排列。若中断服务程序的执行时间为20μs,请根据下图所示时间轴给出的中断源请求中断的时刻,画出CPU执行程序的轨迹。
解:A、B、C、D的响优先级即处理优先级。CPU执行程序的轨迹图如下:
B请求A请求
25. 某机有五个中断源L0、L1、L2、 L3、L4,按中断响应的优先次序由高向低排序为L0? L1?L2?L3?L4,根据下示格式,现要求中断处理次序改为L1?L4?L2?L0?L3,根据下面的格式,写出各中断源的屏蔽字。 解:各中断源屏蔽状态见下表: 中断源 0 I0 I1 I2 I3 I4 1 1 1 0 1 1 0 1 0 0 0 屏蔽字 2 0 1 1 0 1 3 1 1 1 1 1 4 0 1 0 0 1 表中:设屏蔽位=1,表示屏蔽;屏蔽位=0,表示中断开放。
26. 设某机配有A、B、C三台设备,其优先顺序按A?B?C降序排列,为改变中断处理次序,它们的中断屏蔽字设置如下:
设备 A B C 屏蔽字 111 010 011 请按下图所示时间轴给出的设备请求中断的时刻,画出CPU执行程序的轨迹。设A、B、C中断服务程序的执行时间均为20? s。
解:A、B、C设备的响应优先级为A最高、B次之、C最低,处理优先级为A最高、
- 15 -