计算机组成原理第二版课后答案 下载本文

直接连线方式仅适用于结构特别简单的机器中。

为简单起见,本题采用单总线将题意所给部件连接起来,框图如下: ˉ LDA@X指令周期流程图: 说 明 ˉ LDA

ˉ(2)中断周期流程图如下: 说 明 A 说 明ˉ

讨论:解这道题有两个要素,首先要根据所给部件设计好数据通路,即确定信息流动的载体。其次选择好描述数据流的方法,无论采用什么样的表达方式,其关键都要能清楚地反映数据在通路上流动的顺序,即强调一个―流‖字。较好的表达方式是流程图的形式。

13. 在中断系统中INTR、INT、EINT三个触发器各有何作用? 解:INTR——中断请求触发器,用来登记中断源发出的随机性中断请求信号,以便为CPU查询中断及中断排队判优线路提供稳定的中断请求信号; EINT——中断允许触发器,CPU中的中断总开关。当EINT=1时,表示允许中断(开中断),当EINT=0时,表示禁止中断(关中断)。其状态可由开、关中断等指令设置; INT——中断标记触发器,控制器时序系统中周期状态分配电路的一部分,表示中断周期标记。当INT=1时,进入中断周期,执行中断隐指令的操作。

讨论: ′ 当进入中断周期时,INT=1; (INT=1时,进入中断周期) ′ 回答时首先应给出该触发器的中文名称,然后说明其主要作用。 INT与EINT配合使用以实现关中断功能,即INT=1,反相后使EINT=0; (关中断并不是INT的主要功能,进入中断周期后要执行中断隐指令的全部三个功能) INT表示自愿中断,完成系统调用;′ (尽管INT触发器的英文缩写与INT指令助记符完全相同,但它们一个是硬件设置,一个是软中断指令,其作用完全不同)

′ ′ INT表示处于中断状态中; (INT并不是在整个中断过程中都存在) ′INT标记目前是否正在运行中断程序; (INT标记在运行中断程序时已不存在) INT判断中断过程中是否接受其它中断请求,INT=0时,开中断,允许中断嵌套; EINT判断CPU是否响应中断请求;′(INT标记与中断嵌套技术没有任何关系。它不能表示出中断过程中是否接受其它中断请求,INT=0也不表示开中断) (CPU根据EINT状态决定是否响应中断请求)

′ 当CPU响应中断时,EINT置1; (当EINT=1时,允许CPU响应中断) ′ EINT确保CPU响应中断后,不受新的中断干扰; ′(CPU响应中断在先,进入中断周期后才使EINT=0,仅在单重中断时,整个中断过程EINT=0,不接受新的中断请求) INTR=1,判断哪个中断源有请求;′EINT表示中断隐指令,INT起关中断作用; (把EINT和INT的作用搞反了) (INTR对中断源的请求进行登记,当INTR=1时,表示有请求)

20. 现有A、B、C、D四个中断源,其优先级由高向低按A、B、C、D顺序排列。若中断服务程序的执行时间为20μs,请根据下图所示时间轴给出的中断源请求中断的时刻,画出CPU执行程序的轨迹。 解: CPU执行程序的轨迹图如下: L1?

21. 某机有五个中断源L0、L1、L2、 L3、L4,按中断响应的优先次序由高向低排序为L0 L2,根据下示格式,1)写出各中断源的屏蔽字。?L0 ?L4 ?L3 ?L4,现要求中断处理次序改为L1?L3 ?L2 ? 2)按照修改过的处理次序,当五个中断请求信号同时到来时,请画出CPU中断处理过程。 解:1)各中断源屏蔽状态见下表:

表中:设屏蔽位=1,表示屏蔽;屏蔽位=0,表示中断开放。 为了使所有中断都能得到及时响应,现行程序的中断屏蔽字一般设为全开放(全0)状态。 现行程序(00000)

讨论: 图中括号内为各程序的屏蔽码。 注意:中断屏蔽码的判优作用体现在对低级中断请求的屏蔽上,对于多个同时到来的高级中断请求信号之间则只有开放作用,没有判优作用。此时还需依赖硬件排队线路

完成进一步的判优。

C,为改变中断处理次序,将它们的中断屏蔽字分别设为: 设备 >B> 22. 设某机配有A、B、C三台设备,其优先顺序是A 屏蔽字 A 1 1 1 B 0 1 0 C 0 1 1 s。m请按下图所示时间轴给出的设备请求中断的时刻,画出CPU执行程序的轨迹。设A、B、C中断服务程序的执行时间均为20 解: CPU执行程序的轨迹图如下:

讨论:当从B中断转到C中断时,不返回现行程序,下述程序运行轨迹是错误的:

第 九 章

3. 什么是指令周期、机器周期和时钟周期?三者有何关系? 解:CPU每取出并执行一条指令所需的全部时间叫指令周期;机器周期是在同步控制的机器中,执行指令周期中一步相对完整的操作(指令步)所需时间,通常安排机器周期长度=主存周期;时钟周期是指计算机主时钟的周期时间,它是计算机运行时最基本的时序单位,对应完成一个微操作所需时间,通常时钟周期=计算机主频的倒数。

4. 能不能说机器的主频越快,机器的速度就越快,为什么? 解:不能说机器的主频越快,机器的速度就越快。因为机器的速度不仅与主频有关,还与数据通路结构、时序分配方案、ALU运算能力、指令功能强弱等多种因素有关,要看综合效果。

5. 设机器A的主频为8MHz,机器周期含4个时钟周期,且该机的平均指令执行速度是0.4MIPS,试求该机的平均指令周期和机器周期,每个指令周期中含几个机器周期?如果机器B的主频为12MHz,且机器周期也含4个时钟周期,试问B机的平均指令执行速度为多少MIPS? 解:先通过A机的平均指令执行速度求出其平均指令周期,再通过主频求出时钟周期,然后进一步求出机器周期。B机参数的算法与A机类似。 计算如下:

A机平均指令周期=1/0.4MIPS=2.5μs A机时钟周期=1/8MHz=125ns A机机器周期

=125ns×4=500ns=0.5μs 83ns B机机器周期 =83ns×4 =332ns?A机每个指令周期中含机器周期个数 =2.5μs÷0.5μs=5个 B机时钟周期 =1/12MHz 设B机每个指令周期也含5个机器周期,则: B机平均指令周期=332ns×5=1.66μs B机平均指令执行速度=1/1.66μs =0.6MIPS 结论:主频的提高有利于机器执行速度的提高。

6. 设某机主频为8MHz,每个机器周期平均含2个时钟周期,每条指令平均有2.5个机器周期,试问该机的平均指令执行速度为多少MIPS?若机器主频不变,但每个机器周期平均含4个时钟周期,每条指令平均有5个机器周期,则该机的平均指令执行速度又是多少MIPS?由此可得出什么结论? 解:先通过主频求出时钟周期,再求出机器周期和平均指令周期,最后通过平均指令周期的倒数求出平均指令执行速度。计算如下:

时钟周期=1/8MHz=0.125×10-6 =125ns 机器周期=125ns×2=250ns 平均指令周期=250ns×2.5=625ns 平均指令执行速度=1/625ns=1.6MIPS 当参数改变后: 机器周期= 125ns×4=500ns=0.5μs 平均指令周期=0.5μs×5=2.5μs 平均指令执行速度=1/2.5μs=0.4MIPS 结论:两个主频相同的机器,执行速度不一定一样。

7. 某CPU的主频为8MHz,若已知每个机器周期平均包含4个时钟周期,该机的平均指令执行速度为0.8MIPS,试求该机的平均指令周期及每个指令周期含几个机器周期?若改用时钟周期为0.4μs的CPU芯片,则计算机的平均指令执行速度为多少MIPS?若要得到平均每秒40万次的指令执行速度,则应采用主频为多少的CPU芯片?

解:先通过主频求出时钟周期时间,再进一步求出机器周期和平均指令周期。 时钟周期

=1/8MHz=0.125×10-6 =125ns 机器周期=125ns×4=500ns=0.5μs 平均指令周期=1/0.8MIPS =1.25 ×10-6=1.25μs 每个指令周期所含机器周期个数 = 1.25μs/0.5μs=2.5个

当芯片改变后,相应参数变为: 机器周期=0.4μs×4=1.6μs 平均指令周期=1.6μs×2.5=4μs 平均指令执行速度=1/4μs =0.25MIPS 若要得到平均每秒40万次的指令执行速度,则应采用的主频为: 平均指令周期=1/0.4MIPS =2.5 ×10-6=2.5μs 机器周期=2.5μs÷2.5=1μs 时钟周期= 1μs÷4=0.25μs 主频=1/0.25μs=4MHz

8. 某计算机的主频为4MHz,各类指令的平均执行时间和使用频度如下表所示,试计算该机的速度(单位用MIPS表示),若上述CPU芯片升挡为6MHz,则该机的速度又为多少? s ms 0.8m指令类别 存取 加、减、比较、转移 乘除 其他 平均指令 执行时间 0.6 s 使用频度 35% 50% 5% 10%ms 1.4m 10 解: (1)指令平均运行时间 = (0.6×0.35+0.8×0.5+10×0.05+1.4×0.1)μs = 1.25μs 机器平均运行速度 = 1/1.25μs = 0.8MIPS (2) 解法一: 时钟周期 = 1/4MHz = 0.25μs 指令平均运行周期数 = 1.25μs ’0.25μs = 5CPI 时钟周期 = 1/6MHz ≈ 0.167μs 指令平均运行时间 = 0.167μs×5 ≈ 0.833μs 机器平均运行速度 = 1/0.833μs ≈ 1.2MIPS

11. 设CPU内部结构如图9.4所示,此外还设有B、C、D、E、H、L六个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如Bi为寄存器B的输入控制;Bo为B的输出控制)。要求从取指令开始,写出完成下列指令所需的控制信号。 AC) ?B) (2)SUB A,H;((AC)-(H) ?(1)ADD B,C;((B)+(C) 解:先画出相应指令的流程图,然后将图中每一步数据通路操作分解成相应的微操作,再写出同名的微命令即可。

(1) ADD B,C指令流程及微命令序列如下: ˉ Bo,Yi Co,ALUi,+ Zo,Bi

(2) SUB A,H指令流程及微命令序列如下: ˉ Ho,Yi ACo,ALUi,– Zo,ACi

第 十 章

1. 假设响应中断时,要求将程序断点存在堆栈内,并且采用软件办法寻找中断服务程序的入口地址,试写出中断隐指令的微操作及节拍安排。 ?MDR,1?MAR T1 PC?EINT,SP?解:设软件查询程序首址为0号内存单元,则中断隐指令的微操作命令及节拍安排如下: T0 0 SP T4 ? W,SP+1?MDR,1?M(MAR) T3 PSW?MAR,MDR?SP T2 SP?W,SP+1 M(MAR) 由于题意中没有给出确切的数据通路结构,故上述节拍分配方案的并行性较低。?PC,MDR?0

2. 写出完成下列指令的微操作及节拍安排(包括取指操作)。 (1)指令ADD R1,X完成将R1寄存器的内容和主存X单元的内容相加,结果存于R1的操作。 (2)指令ISZ X完成将主存X单元的内容增1,并根据其结果若为0,则跳过下一条指令执行。 解:该题题意中没有指定数据通路,因此排序前应先设定一下。在此设采用单总线结构的CPU数据通路,且ALU输入端设两个暂存器C、D(见17题图)。并设采用同步控制,每周期3节拍:

R T1 ?MAR,1? (1)指令ADD R1,X的微操作及节拍安排如下: 取指周期: T0 PC ID 执行周期1: T0 ?IR,OP(IR)?MDR T2 MDR?PC+1,M(MAR) D 执行周期2: ?MDR T2 MDR?C,M(MAR)?R T1 R1?MAR,1?X(IR) R1?T0 T1 T2 +,ALU

(2)指令ISZ X的微操作及节拍安排(取指周期同(1),略): C ?MDR T2 MDR?R T1 M(MAR)?MAR,1?执行周期1: T0 X(IR) M(MAR) ? -W T2 MDR?MDR T1 0?执行周期2: T0 +1,ALU (PC+1)·Z (设Z为结果为0标志) 该指令的操作在一个执行周期做不完,因此安排了两个执行周期。 3. 按序写出下列程序所需的全部微操作命令及节拍安排。

解:由于题意未明确要求采用何种控制器结构,故仍按较简单的组合逻辑时序关系安排节拍(单总线、同

步控制,假设同上题): LDA 206 指令: ID ?IR,OP(IR)?MDR T2 MDR?R T1 PC+1,M(MAR)?MAR,1?取指周期: T0 PC AC?MDR T2 MDR?R T1 M(MAR)?MAR,1?执行周期: T0 206(IR)

ADD C ?MDR,AC?R T1 M(MAR)?MAR,1?207 指令:取指周期:同上。 执行周期1: T0 207(IR) AC BAN 204 指令:取指周期:同上。 ?D 执行周期2: T0 T1 T2 +,ALU?T2 MDR PC? 执行周期: (设N为结果为负标志) T0 T1 T2 N·204(IR)

STA 205 指令: -W T2 ?MDR,0?MAR T1 AC? 取指周期:同上。 执行周期: T0 205(IR) G ?M(MAR) STP 指令: 取指周期:同上。 执行周期: T0 T1 T2 0?MDR (G为停机标志。)

4. 已知带返转指令的含义如下图所示,写出机器在完成带返转指令时,取指阶段和执行阶段所需的全部微操作及节拍安排。 主程序 子程序

解:假设同上题,仍按组合逻辑、单总线、同步控制安排,带返转指令的全部微操作及节拍如下: ID ?IR,OP(IR)?MDR T2 MDR?R T1 PC+1,M(MAR)?MAR,1?取指周期: T0 PC M(MAR) ? W T2 MDR?MDR),1?MDR(PC?MAR T1 M+1?执行周期: T0 Ad(IR) PC)?PC (MAR +1? K+1

10. 能否说水平型微指令就是直接编码的微指令,为什么? 解:不能说水平型微指令就是直接编码的微指令,因为符合水平型微指令特征的微指令都属于水平型微指令,常见的有:直接编码、字段直接编码、字段间接编码,及混合编码等。直接编码的微指令只是最典型的一种。

13. 设控制存储器的容量为512×48位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有4个(采用直接控制),微指令格式如下:

17. 假设机器的主要部件有:程序计数器PC,指令寄存器IR,通用寄存器R0、R1、R2、R3,暂存器C、D,ALU,移位器,存储器地址寄存器MAR,存储器数据寄存器MDR及存储矩阵M。 (1)要求采用单总线结构画出包含上述部件的硬件框图,并注明数据流动方向。 (2)画出ADD(R1),(R2)指令在取指阶段和执行阶段的信息流程图。 R1寄存器存放源操作数地址,R2寄存器存放目的操作数的地址。 (3)写出对应该流程图所需的全部微操作命令。 解: (1)采用单总线结构的CPU硬件框图如下:

(2)ADD(R1),(R2) ˉ(3)对应该流程图所 指令流程图如下: 需的全部微操作命令。 R?R1o,MARi 1 R MDRo,Di?MDRo,Ci R2o,MARi 1 -W 公操作?+,D,MDRi 0

18. 假设机器的主要部件同17题,外加一个控制门G。 (1)要求采用双总线结构(每组总线的数据流动方向是单向的),画出包含上述部件的硬件框图,并注明数据流动方向。 (2)画出SUB R1操作的指令周期信息流程图(假设指令地址已放在PC中),并列出相应的微操作控制信号序列。?R1,R3完成(R1)-(R3)

解: (1)双总线结构的CPU硬件框图如下: (2) SUB R1,R3指令周期流程图如下: R1o,G,Ci R2o,G,Di -,D,G,R1i

19. 下表给出8条微指令I1~I8及所包含的微命令控制信号,设计微指令操作控制字段格式,要求所使用的控制位最少,而且保持微指令本身内在的并行性。

解:为使设计出的微指令操作控制字段最短,并且保持微指令本身内在的并行性,应采用混合编码法。首先找出互斥的微命令组,为便于分析,将微命令表重画如下:

由表中微命令的分布情况可看出:a、b、c、d、e微命令的并行性太高,因此不能放在同一字段中。另外,由分析可知,在2、3、4分组的互斥组中,3个一组的微命令互斥组对控制位的压缩作用最明显。因此,应尽可能多的找出3个一组的互斥组。现找出的互斥组有:cfj,dij,efh,fhi,bgj,ehj,efj……等等。 从中找出互不相重的互斥组有两个:dij,efh。则:微指令操作控制字段格式安排如下: 1 1 1 1 2 2

各字段编码分配如下: a —— 0 无操作; b —— 0 无操作; 1 a微命令; 1 b微命令 c —— 0 无操作; g —— 0 无操作; 1 c微命令; 1 g微命令 dij —— 00 无操作; efh —— 00 无操作; 01 d微命令; 01 e 10 i微命令; 10 f 11 j微命令; 11 h 注:每组都应为―无操作‖留一种编。 与采用直接控制法比较: 直接控制法:10个微命令需10位操作控制位; 本方案:10个微命令需8位操作控制位,压缩了2位。