6)单重分组跳跃进位是并行进位和串行进位技术的结合;双重分组跳跃进位是二级
并行进位技术;特别注意在位数较少时,双重分组跳跃进位可以采用全先行进位技术实现;位数较多时,可采用双重分组跳跃进位和串行进位技术结合实现。
第 七 章
0,RISC 和CISC 差异很大,它们主要有: (1) 指令系统:RISC 设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC 计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。 (2) 存储器操作:RISC 对存储器操作有限制,使控制简单化;而CISC 机器的存储器操作指令多,操作直接。 (3) 程序:RISC 汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC 汇编语言程序编程相对简单,科学计算及复杂操作的程序设计相对容易,效率较高。 (4) 中断:RISC 机器在一条指令执行的适当地方可以响应中断;而CISC 机器是在一条指令执行结束后响应中断。 (5) CPU:RISC CPU 包含有较少的单元电路,因而面积小、功耗低;而CISC CPU 包含有丰富的电路单元,因而功能强、面积大、功耗大。 (6) 设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC 微处理器结构复杂,设计周期长。 (7) 用户使用:RISC 微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。 (8) 应用范围:由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机。 1. 零地址指令的操作数来自哪里??各举一例说明。 答:零地址指令的操作数来自ACC,为隐含约定。
在一地址指令中,另一个操作数的地址通常可采用ACC隐含寻址方式获得。
2. 对于二地址指令而言,操作数的物理地址可安排在什么地方?举例说明。
答:对于二地址指令而言,操作数的物理地址可安排在寄存器内、指令中或内存单元内等。 7.6 某指令系统字长为16位,地址码取4位,试提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。 解:三地址指令格式如下:
4 4 4 4
OP A1 A2 A3
思路:以三地址指令格式为该指令系统的基本格式。以此格式为基础,采用扩展操作码技术,设计出题 解题
意所 要求的地址码结构的指令。 指 令操作码分配方案如下:
4位OP
0000,
??, A1,A2,A3;8条三地址指令 0111,
1000,0000,
??,??, A2,A3;16条二地址指令 1000,1111, 1001,0000,0000,
??,??,??, A3;100条一地址指令 1001,0110,0011, 1001,0110,0100,
??,??,??, 冗余编码
1001,1111,1111, 可用来扩充一、零地址指令条数 1010,
??, 冗余编码
1111, 可用来扩充三、二、一、零地址指令条数
8. 某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有M条,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种? 解:1)若采用定长操作码时,二地址指令格式如下:
OP(4位) A1(6位) 4A2(6位) 设二地址指令有K种,则:K=2-M-N
当M=1(最小值),N=1(最小值)时,二地址指令最多有:Kmax=16-1-1=14种 3) 若采用变长操作码时,二地址指令格式仍如1)所示,但操作码长度可随地址码的
个数而变。此时,K= 2 -(N/2 + M/2 );
当(N/2 + M/2 )?1时(N/2 + M/2 向上取整),K最大,则二地址指令最多有:
Kmax=16-1=15种(只留一种编码作扩展标志用。)
11. 画出先变址再间址及先间址再变址的寻址过程示意图。 解:1)先变址再间址寻址过程简单示意如下: EA=[(IX)+A],IX?(IX)+1
2)先间址再变址寻址过程简单示意如下:EA=(IX)+(A),IX? (IX)+1
16. 某机主存容量为4M?16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:(1)画出一地址指令格式并指出各字段的作用; (2)该指令直接寻址的最大范围; (3)一次间址和多次间址的寻址范围; (4)立即数的范围(十进制表示); (5)相对寻址的位移量(十进制表示);
(6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题?
(7)如何修改指令格式,使指令的寻址范围可扩大到4M?
(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。 解:(1)单字长一地址指令格式:
OP(7位) M(3位) A(6位) 6
12
6
12
4
6
12
OP为操作码字段,共7位,可反映108种操作; M为寻址方式字段,共3位,可反映6种寻址操作; A为地址码字段,共16-7-3=6位。 (2)直接寻址的最大范围为2=64。
(3)由于存储字长为16位,故一次间址的寻址范围为2;若多次间址,需用存储字的最高位来区别是否继续间接寻址,故寻址范围为2。
(4)立即数的范围为-32——31(有符号数),或0——63(无符号数)。 (5)相对寻址的位移量为-32——31。
(6)上述六种寻址方式中,因立即数由指令直接给出,故立即寻址的指令执行时间最短。间接寻址在指令的执行阶段要多次访存(一次间接寻址要两次访存,多次间接寻址要多次访存),故执行时间最长。变址寻址由于变址寄存器的内容由用户给定,而且在程序的执行过程中允许用户修改,而其形式地址始终不变,故变址寻址的指令便于用户编制处理数组问题的程序。相对寻址操作数的有效地址只与当前指令地址相差一定的位移量,与直接寻址相比,更有利于程序浮动。
(7)方案一:为使指令寻址范围可扩大到4M,需要有效地址22位,此时可将单字长一地址指令的格式改为双字长,如下图示:
OP(7位) MOD(3位) A(低16位) 方案二:如果仍采用单字长指令(16位)格式,为使指令寻址范围扩大到4M,可通过段寻址方案实现。安排如下:
硬件设段寄存器DS(16位),用来存放段地址。在完成指令寻址方式所规定的寻址操作后,得有效地址EA(6位),再由硬件自动完成段寻址,最后得22位物理地址。 即:物理地址=(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位) I(1位) A(20位) 6
15
16
6
A(高6位) 操作码字段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
5
6
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)中断周期流程图如下: