第七章 指令系统ღ7-1指令,程序指令:计算机执行某种操作的命令程序:由有序的指令串构成,程序要解决一个具体的问题指令系统:一台计算机能执行的全部指令的集合指令系统的重要性:软件编程的基础,硬件设计的依据,综合考虑计算机的软硬件是计算机设计的关键因素。ღ7-2操作码[1]操作码用来指明该指令所要完成的操作。通常位数反映了机器的操作种类,即机器允许的指令条数,如7位→2^7=128条指令指令的一般格式:操作码字段地址码字段操作码:定长,变长固定长度操作码:操作码长度(占二进制[2]位数)固定不变硬件设计相对简单指令译码时间开销小指令空间利用率较低可变长度操作码:操作码长度随指令地址数目的不同而不同(可平均缩短指令长度)硬件设计相对复杂指令译码时间开销较大指令空间利用率较高例:某机器采用固定长度指令系统,16位,包括3地址指令15条,双地址指令10条,单地址指令若干,每个地址占4位。问:该指令系统最多容纳多少个单地址指令,并设计该指令系统的操作码编码方案析:每条指令:一个唯一操作码编码,不同类型指令具有不同标识,用扩展操作码方案三15条,1111双10条,6个没用 6*16=96个๑ 7.3什么是指令字[3]长、机器字长和存储字长?๑ 7.6某指令系统字长为16位,地址码取4位,试提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。固定操作码为4位。8条三地址指令操作码为:00000111(剩下10001111共8个扩展窗口)16条二地址指令操作码为:1000 00001000 1111(剩下1001 00001111 1111共112个扩展窗口)100条一地址指令操作码为: 0000 11110000 11110000 11110000 11110000 11110000 11110000 0011๑7.9试比较间接寻址[4]和寄存器[5]间接寻址。๑7.10试比较基址寻址[6]和变址[7]寻址。 1)都可有效地扩大指令寻址范围。 2)基址寻址时,基准地址由基址寄存器[8]给出,地址的改变反映在位移量A的取值上;变址寻址时,基准地址由A给出,地址的改变反映在变址值的自动修改上,变址值由变址寄存器[9]给出。 3)基址寄存器内容通常由系统程序设定,变址寄存器内容通常由用户设定。 4)基址寻址适用于程序的动态重定位[10],变址寻址适用于数组或字符串处理,适用场合不同。๑7.11画出先变址再间址及先间址再变址的寻址过程示意图。 解:1)先变址再间址寻址过程简单示意如下: EA=[(IX)+A], (IX)+1IX+1-|||-IX-|||-设一重间接๑7.14设相对寻址的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量(用补码表示),假设当前转移指令第一字节所在地址为2000H,且CPU每取出一个字节便自动完成(PC)+1→PC的操作。试问当执行“JMP * +8”和“JMP * -9”指令时,转移指令第二字节的内容各为多少?(1)根据汇编语言指令JMP * +8,即要求转移后的目标地址为2000H+08H=2008H,但因为CPU取出该指令后PC值已修改为2002H,故转移指令第二字节的内容应为+6(十进制),写成补码为06H。(2)同理,执行“JMP * -9”指令时,要求转移指令第二字节的内容应为-11(十进制),写成补码为:F5H๑8.1 CPU有哪些功能?画出其结构框图并简要说明各个部件的作用。答:参考P328和图8.2。๑8.2什么是指令周期?指令周期是否有一个固定值?为什么?指令周期是CPU每取出并执行一条指令所需的全部时间,也即CPU完成一条指令的时间。由于各种指令操作功能不同,因此各种指令的指令周期是不同的,指令周期的长短主要和指令在执行阶段的访存次数和执行阶段所需要完成的操作有关。๑8.3画出指令周期的流程图,分析说明图中每个子周期的作用。答:参看P343及图8.8。๑8.4设CPU内有下列部件:PC、IR、SP、AC、MAR、MDR和CU,要求: (1)画出完成间接寻址的取数指令LDA@X(将主存某地址单元X的内容取至AC中)的数据流(从取指令开始)。(2)画出中断周期的数据流。 解:CPU中的数据流向与所采用的数据通路结构直接相关,不同的数据通路中的数据流是不一样的。常用的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单的机器中。为简单起见,本题采用单总线将题中所给部件连接起来,框图如下: (1)LDA@X指令周期数据流程图:(2)中断周期流程图如下:๑8.5中断周期前是什么阶段?中断周期后又是什么阶段?在中断周期CPU应完成什么操作? 从CPU机器周期的时序层次来看,中断周期前是指令的执行阶段。中断周期后是取指令阶段。在中断周期CPU应完成关中断、保存断点和转中断服务程序入口三个操作。๑9.2控制单元的功能是什么?其输入受什么控制?答:控制单元的主要功能是发出各种不同的控制信号。其输入受时钟信号、指令寄存器的操作码字段、标志和来自系统总线的控制信号的控制。๑9.3什么是指令周期、机器周期和时钟周期?三者有何关系?指令周期是CPU每取出并执行一条指令所需的全部时间,也即CPU完成一条指令的时间。机器周期是所有指令执行过程中的一个基准时间,通常以存取周期作为机器周期。时钟周期是机器主频的倒数,也可称为节拍,它是控制计算机操作的最小单位时间。一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期,每个指令周期内的机器周期数可以不等,每个机器周期的时钟周期数也可以不等。๑9.4能不能说CPU的主频越快,计算机的运行速度就越快?为什么?不能说CPU的主频越快,计算机的运行速度就越快。因为机器的速度不仅与主频有关,还与机器周期中所含的时钟周期数以及指令周期中所含的机器周期数有关。同样主频的机器,由于机器周期所含时钟周期数不同,机器的速度也不同。机器周期中所含时钟周期数少的机器,速度更快。此外,机器的速度还和其他很多因素有关,如主存的速度、机器是否配有Cache、总线的数据传输率、硬盘的速度以及机器是否采用流水技术等。๑10.15设控制存储器的容量为512×48位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有4个(采用直接控制),微指令格式如下:试问微指令中的三个字段分别为多少位?
第七章 指令系统
ღ7-1指令,程序
指令:计算机执行某种操作的命令
程序:由有序的指令串构成,程序要解决一个具体的问题
指令系统:一台计算机能执行的全部指令的集合
指令系统的重要性:软件编程的基础,硬件设计的依据,综合考虑计算机的软硬件是计算机设计的关键因素。
ღ7-2操作码[1]
操作码用来指明该指令所要完成的操作。通常位数反映了机器的操作种类,即机器允许的指令条数,如7位→2^7=128条指令
指令的一般格式:
操作码字段
地址码字段
操作码:定长,变长
固定长度操作码:操作码长度(占二进制[2]位数)固定不变
硬件设计相对简单
指令译码时间开销小
指令空间利用率较低
可变长度操作码:操作码长度随指令地址数目的不同而不同(可平均缩短指令长度)
硬件设计相对复杂
指令译码时间开销较大
指令空间利用率较高
例:某机器采用固定长度指令系统,16位,包括3地址指令15条,双地址指令10条,单地址指令若干,每个地址占4位。问:该指令系统最多容纳多少个单地址指令,并设计该指令系统的操作码编码方案
析:每条指令:一个唯一操作码编码,不同类型指令具有不同标识,用扩展操作码方案
三15条,1111
双10条,6个没用 6*16=96个
๑ 7.3什么是指令字[3]长、机器字长和存储字长?
๑ 7.6某指令系统字长为16位,地址码取4位,试提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。
固定操作码为4位。
8条三地址指令操作码为:00000111(剩下10001111共8个扩展窗口)
16条二地址指令操作码为:1000 00001000 1111
(剩下1001 00001111 1111共112个扩展窗口)
100条一地址指令操作码为: 0000 1111
0000 1111
0000 1111
0000 1111
0000 1111
0000 1111
0000 0011
๑7.9试比较间接寻址[4]和寄存器[5]间接寻址。
๑7.10试比较基址寻址[6]和变址[7]寻址。 1)都可有效地扩大指令寻址范围。 2)基址寻址时,基准地址由基址寄存器[8]给出,地址的改变反映在位移量A的取值上;变址寻址时,基准地址由A给出,地址的改变反映在变址值的自动修改上,变址值由变址寄存器[9]给出。 3)基址寄存器内容通常由系统程序设定,变址寄存器内容通常由用户设定。 4)基址寻址适用于程序的动态重定位[10],变址寻址适用于数组或字符串处理,适用场合不同。
๑7.11画出先变址再间址及先间址再变址的寻址过程示意图。 解:1)先变址再间址寻址过程简单示意如下: EA=[(IX)+A], (IX)+1IX

๑7.14设相对寻址的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量(用补码表示),假设当前转移指令第一字节所在地址为2000H,且CPU每取出一个字节便自动完成(PC)+1→PC的操作。试问当执行“JMP * +8”和“JMP * -9”指令时,转移指令第二字节的内容各为多少?
(1)根据汇编语言指令JMP * +8,即要求转移后的目标地址为2000H+08H=2008H,但因为CPU取出该指令后PC值已修改为2002H,故转移指令第二字节的内容应为+6(十进制),写成补码为06H。
(2)同理,执行“JMP * -9”指令时,要求转移指令第二字节的内容应为-11(十进制),写成补码为:F5H
๑8.1 CPU有哪些功能?画出其结构框图并简要说明各个部件的作用。
答:参考P328和图8.2。
๑8.2什么是指令周期?指令周期是否有一个固定值?为什么?
指令周期是CPU每取出并执行一条指令所需的全部时间,也即CPU完成一条指令的时间。由于各种指令操作功能不同,因此各种指令的指令周期是不同的,指令周期的长短主要和指令在执行阶段的访存次数和执行阶段所需要完成的操作有关。
๑8.3画出指令周期的流程图,分析说明图中每个子周期的作用。
答:参看P343及图8.8。
๑8.4设CPU内有下列部件:PC、IR、SP、AC、MAR、MDR和CU,要求: (1)画出完成间接寻址的取数指令LDA@X(将主存某地址单元X的内容取至AC中)的数据流(从取指令开始)。(2)画出中断周期的数据流。 解:CPU中的数据流向与所采用的数据通路结构直接相关,不同的数据通路中的数据流是不一样的。常用的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单的机器中。
为简单起见,本题采用单总线将题中所给部件连接起来,框图如下:
(1)LDA@X指令周期数据流程图:
(2)中断周期流程图如下:
๑8.5中断周期前是什么阶段?中断周期后又是什么阶段?在中断周期CPU应完成什么操作? 从CPU机器周期的时序层次来看,中断周期前是指令的执行阶段。中断周期后是取指令阶段。在中断周期CPU应完成关中断、保存断点和转中断服务程序入口三个操作。
๑9.2控制单元的功能是什么?其输入受什么控制?
答:控制单元的主要功能是发出各种不同的控制信号。其输入受时钟信号、指令寄存器的操作码字段、标志和来自系统总线的控制信号的控制。
๑9.3什么是指令周期、机器周期和时钟周期?三者有何关系?
指令周期是CPU每取出并执行一条指令所需的全部时间,也即CPU完成一条指令的时间。机器周期是所有指令执行过程中的一个基准时间,通常以存取周期作为机器周期。时钟周期是机器主频的倒数,也可称为节拍,它是控制计算机操作的最小单位时间。
一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期,每个指令周期内的机器周期数可以不等,每个机器周期的时钟周期数也可以不等。
๑9.4能不能说CPU的主频越快,计算机的运行速度就越快?为什么?
不能说CPU的主频越快,计算机的运行速度就越快。因为机器的速度不仅与主频有关,还与机器周期中所含的时钟周期数以及指令周期中所含的机器周期数有关。同样主频的机器,由于机器周期所含时钟周期数不同,机器的速度也不同。机器周期中所含时钟周期数少的机器,速度更快。
此外,机器的速度还和其他很多因素有关,如主存的速度、机器是否配有Cache、总线的数据传输率、硬盘的速度以及机器是否采用流水技术等。
๑10.15设控制存储器的容量为512×48位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有4个(采用直接控制),微指令格式如下:
试问微指令中的三个字段分别为多少位?
题目解答
答案
解:微指令[11]各字段位数分配如下:操作控制35,转移条件4,下地址9
๑10.21下表给出8条微指令I1~I8及所包含的微命令[12]控制信号,设计微指令操作控制字段格式,要求所使用的控制位最少,而且保持微指令本身内在的并行性。
解:为使设计出的微指令操作控制字段最短,并且保持微指令本身内在的并行性,应采用混合编码[13]法。首先找出互斥的微命令组,为便于分析,将微命令表重画如下:
由表中微命令的分布情况可看出: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 | b | c | g | efh | dij |
各字段编码分配如下:a:0 无操作,1 a微命令;
b:0 无操作,1 b微命令;
c: 0 无操作, 1 c微命令;
g :0 无操作, 1 g微命令;
dij :00 无操作;01 d微命令;10 i微命令;11 j微命令;
efh:00 无操作;01 e微命令;10 f微命令;11 h微命令
与采用直接控制法比较:直接控制法:10个微命令需10位操作控制位;本方案中10个微命令需8位操作控制位,压缩了2位。