方案三:在采用单字长指令(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位) 65
I(1位) A(20位) 操作码字段OP占6位,因为2>=64;
寄存器编号R占5位,因为2>=32;
间址位I占1位,当I=0,存储器寻址的操作数为直接寻址,当I=1时为间接寻址; 形式地址A占20位,可以直接寻址2字。
(2)如采用基址寻址,则指令格式中应给出基址寄存器号,以指定哪一个通用寄存器用作基址寄存器。指令格式变为: OP(6位) 源R(5位) I(1位) 32
20
X(1位) 目标R(5位) A(14位) 增加寻址特征位X,当X=1时,以目标寄存器R作为基址寄存器进行基址寻址。 基址寻址可访问存储空间为:2字。
6. 某机字长16位,存储器直接寻址空间为128字,变址时的位移量为-64~+63,16个通用寄存器均可作为变址寄存器。采用扩展操作码技术,设计一套指令系统格式,满足下列寻址类型的要求: (1)直接寻址的二地址指令3条; (2)变址寻址的一地址指令6条; (3)寄存器寻址的二地址指令8条; (4)直接寻址的一地址指令12条; (5)零地址指令32条。 试问还有多少种代码未用?若安排寄存器寻址的一地址指令,最多还能容纳多少
条?
解:题意分析: 设指令字长=机器字长,128字的直接寻址空间要求形式地址A为7位,-64~+63的位移量也需7位(6位加1位符号位),16个通用寄存器作变址寄存器需4
位变址寄存器号,则指令格式为: (1)直接寻址的二地址指
令: 2 7 7
(3)寄存器寻址的二地址指令: 8 4 4
(6)若安排寄存器寻址的一地址指令,指令格式应
为: 12 4
操作码编码分配: 0 0 0 1 A1,A2; 3条直接寻址的二地址指令。 1 0 1 1 0 0 0 …… …… IX,A;6条变址寻址的一地址指令。 1 1 1 0 1 1 1 1 1 0 0 0
0 …… …… …… Ri,Rj; 1 1 1 1 0 1 1 1 8条寄存器寻址的二地址指令。 1 1 1 1 1 0 0 0 0 …… …… …… A; 1 1 1 1 1 1 0 1 1 12条直接寻址
的一地址指令。
续: 1 1 1 1 1 1 1 0 0 0 0 0 …… …… …… …… Ri; 1 1 1 1 1 1
1 1 0 1 1 1 30条寄存器寻址的 1 1 1 1 1 1 1 1 1 0 0 0 一地址指令。 …… …… …… …… (利用30个冗余编码) 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 …… …… …… …… …… 32
条0地址 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 指令
不画所设计的指令格式图,只分配指令操作码编码。 ?讨论: 指令格式中安排寻址方式
字段,例: 2 3 4 7 ?
评注:这是一道指令格式设计题,本题已给出了各种指令所需的条数,因此,在根据题意画出各种指令的格式后,剩下的工作就是要为每一条指令分配编码。在采用扩展操作码技术分配指令编码时,扩展的基本方法是在所设计的指令系统中,选定一种操作码位数最少的指令格式作为基本格式,然后在这种基本格式的基础上进行操作码编码的扩展。为便于硬件译码结构的实现,编码分配应尽量做到有序、有规律。特别是扩展标志码的选择,应尽量采用特征较强的编码,象全‘1’编码等。另外,应在某类指令的编码全部安排完后,再考虑安排扩展标志码,以避免漏排或重码
等不必要的混乱。
第八章
1、什么是中断
在CPU运行过程中,由于内部或外部某个随机事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,完成后返回原来的程序继续执行。这个过程称为中断。 2. 什么是指令周期?指令周期是否有一个固定值?为什么? 解:指令周期是指取出并执行完一条指令所需的时间。
由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。
4. 设CPU内有下列部件:PC、IR、SP、AC、MAR、MDR和CU。
(1)画出完成间接寻址的取数指令LDA@X(将主存某地址单元X的内容取至AC中)的数据流(从取指令开始)。
(2)画出中断周期的数据流。
解:CPU中的数据流向与所采用的数据通路结构直接相关,不同的数据通路中的数据流是不一样的。常用的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单的机器中。
为简单起见,本题采用单总线将题中所给部件连接起来,框图如下:
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个操作时间大致相等的阶段,每个阶段由一个独立的功能部件来完成,这样n个部件就可以同时执行n条指令的不同阶段,从而大大提高CPU的吞吐率。
指令二级流水和四级流水示意图如下:
IF,IDEX,WRIF,IDEX,WRIF,ID二级指令流水示意图EX,WRIF IDEX WREX WREX WRIF IDIF ID四级指令流水示意图
四级流水更能提高处理机的速度。分析如下:
假设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执行程序的轨迹图如下:
相关推荐: