算机组成原理第七.ppt

上传人:牧羊曲112 文档编号:6191630 上传时间:2023-10-03 格式:PPT 页数:65 大小:720.50KB
返回 下载 相关 举报
算机组成原理第七.ppt_第1页
第1页 / 共65页
算机组成原理第七.ppt_第2页
第2页 / 共65页
算机组成原理第七.ppt_第3页
第3页 / 共65页
算机组成原理第七.ppt_第4页
第4页 / 共65页
算机组成原理第七.ppt_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《算机组成原理第七.ppt》由会员分享,可在线阅读,更多相关《算机组成原理第七.ppt(65页珍藏版)》请在三一办公上搜索。

1、指 令 系 统,第 七 章,1.什么叫机器指令?什么叫指令系统?为什么说指令系统与机器的主要功能以及与硬件结构之间存在着密切的关系?,答:机器指令:把每一条机器语言的语句叫机器指令。指令系统:将全部机器指令的集合叫做机器的指令系统机器的指令系统集中反映了机器的功能。计算机设计者主要研究如何确定机器的指令系统,如何用硬件电路,芯片,设备来实现机器指令系统的功能,计算机的使用者则是依据机器提供的指令系统,使用汇编语言来编制各种程序。计算机使用者根据机器指令系统所描述的机器功能,能很清楚地了解计算机内部寄存器-存储器的结构。以及计算机能直接支持的各种数据类型。,2023/10/3,2,3.什么是指令

2、字长、机器字长和存储字长?,答:指令字长即指机器指令中含二进制代码的总位数。指令字长取决于从操作码的长度、操作数地址的长度和操作数地址的个数。不同的指令的字长是不同的。存储字长指一个存储单元存储二进制代码的位数。机器字长指CPU一次能处理中数据的位数你,通常与CPU中寄存器的位数有关。三者位数可以相等,也可以不等。,2023/10/3,3,4.零地址指令的操作数来自哪里?一地址指令的另一个操作数地址通常可采取什么寻址方式获得?各举一例说明。答:零地址指令的操作数来自堆栈的栈顶和次栈顶。一地址指令的另一个操作数通常可采用隐含寻址方式获得,即将另一操作数预先存放在累加器ACC中。,2023/10/

3、3,4,6.某指令系统字长为16位,地址码取4位,试提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。解:三地址指令格式如下:4 4 4 4,解题思路:以三地址指令格式为该指令系统的基本格式。以此格式为基础,采用扩展操作码技术,设计出题意所要求的地址码结构的指令。指令操作码分配方案如下:,4位OP0000,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

4、,可用来扩充一、零地址指令条数1010,冗余编码1111,可用来扩充三、二、一、零地址指令条数,指令操作码分配方案,7.设指令字长为16位,采用扩展操作码技术,每个操作数的地址为6位。如果定义了13条二地址指令,试问还可安排多少条一地址指令?解:二地址指令格式如下:4 6 6,设二地址指令格式为该指令系统的基本格式,4位操作码共有16种编码,其中13种用来定义二地址指令,还剩3种可用作扩展标志。如不考虑零地址指令,该指令系统最多还能安排:一地址指令条数=326=192条,8.某机指令字长16位,每个操作数的地址码为6位,设操作码长度固定,指令分为零地址、一地址和二地址三种格式。若零地址指令有M

5、种,一地址指令有N种,则二地址指令最多有几种?若操作码位数可变,则二地址指令最多允许有几种?解:1)若采用定长操作码时,二地址指令格式如下:4 6 6,此时,无论指令中有几个地址,指令格式都不变。,设二地址指令有K种,则:K=24-M-N 当M=1(最小值),N=1(最小值)时,二地址指令最多有:Kmax=16-1-1=14种 2)若采用变长操作码时,二地址指令格式仍如1)所示,但操作码长度可随地址码的个数而变。此时,M=(24-K)*26-N)*26,即 K=24-(N/26+M/212);(N/26+M/212 向上取整)当(N/26+M/212)1时,K最大,则二地址指令最多有:Kmax

6、=16-1=15种(只留一种编码作扩展标志用。),讨论:此时 一地址指令条数为:N=(24-K)26-M/26;(M/26向上取整)。零地址指令条数为:M=216-212K-26N;当K最大时(K=15),一地址指令最多有:Nmax=64-1=63种;零地址指令最多有:Mmax=64种 注意:应首先根据题意画出指令基本格式。,9.试比较间接寻址和寄存器间接寻址。,间接寻址和寄存器间址都可扩大寻址范围,它们形成有效地址的方式类似:间接寻址需通过访存(若是多次间址还需多次访存)得到有效地址;寄存器间接寻址有效地址不是存放在存储单元中,而是存放于寄存器中,故比间接寻址少访存一次。,2023/10/3

7、,11,10.试比较基址寻址和变址寻址。解:比较如下:1)都可有效地扩大指令寻址范围。2)基址寻址时,基准地址由基址寄存器给出,地址的改变反映在位移量A的取值上;变址寻址时,基准地址由A给出,地址的改变反映在变址值的自动修改上,变址值由变址寄存器给出。3)基址寄存器内容通常由系统程序设定,变址寄存器内容通常由用户设定。4)基址寻址适用于程序的动态重定位,变址寻址适用于数组或字符串处理,适用场合不同。,11.画出先变址再间址及先间址再变址的寻址过程示意图。解:1)先变址再间址寻址过程简单示意如下:EA=(IX)+A,(IX)+1IX,IX,+1,IR,主存,IX:变址寄存器,既可是专用寄存器,也

8、可是通用寄存器之一。,设一重间接,2)先间址再变址寻址过程简单示意如下:EA=(IX)+(A),(IX)+1IX,IX,+1,IR,EA,操作数,主存,IX:变址寄存器,既可是专用寄存器,也可是通用寄存器之一。,设一重间接,注意:1)英文缩写EA表示有效地址,不能乱用。2)示意图中应标明EA(有效地址)的位置。,12.画出“SUB R1”指令对操作数的寻址及减法过程的流程图。设被减数和结果存于ACC中,表示间接寻址,R1寄存器的内容为2074H。解:SUB R1指令寻址及减法过程的流程图:,取指令(可省),寻址操作:寄存器间址EA=(R1)=2074H,EA MAR,读,M(EA)MDR,(A

9、CC)-(MDR)ACC,A,A,(公操作),注:在没有指定数据通路的情况下,此流程只是一个粗略的示意。,13.画出执行“ADD*-5”指令(*为相对寻址特征)的信息流程图。设另一个操作数和结果存于ACC中,并假设(PC)=4000H。解:由于本题未指定数据通路结构,因此只能大概地排一下信息流程图,并且流程图中突出寻址过程的实现。ADD*-5指令信息流程图如下:,取指令(可省),寻址计算:EA=(PC)-5=4000H+FFFBH=3FFBH,EA MAR,读,M(EA)MDR,(ACC)+(MDR)ACC,A,A,(公操作),14.设相对寻址的转移指令占两个字节,第一个字节是操作码,第二个字

10、节是相对位移量,用补码表示。假设当前转移指令第一字节所在的地址为2000H,且CPU每取出一个字节便自动完成(PC)+1PC的操作。试问当执行“JMP*+8”和“JMP*-9”指令时,转移指令第二字节的内容各为多少?解:据题意,相对寻址的转移指令格式如下:,2000H2001H2002H,当执行JMP指令时,指令第二字节的内容不变,PC的内容变为2002H。此时转移指令第二字节内容各为:A1=+8=0000 1000=08H A2=-9=1111 0111=F7H 其有效地址各为:EA1=(PC)+8=2002H+0008H=200AH EA2=(PC)9=2002H+FFF7H=1FF9H,

11、16.某机主存容量为4M16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答以下问题。(1)画出一地址指令格式并指出各字段的作用。(2)该指令直接寻址的最大范围。(3)一次间接寻址和多次间接寻址的寻址范围。(4)立即数的范围(十进制表示)。,(5)相对寻址的位移量(十进制表示)。(6)上述六种寻址方式的指令中哪一种执行时间最短,哪一种最长,为什么?哪一种便于程序浮动,哪一种最适合处理数组问题?(7)如何修改指令格式,使指令的寻址范围可扩大到4M?(8)为使一条转移指令能转移到主存的任一位置,可采取什么措

12、施?简要说明之。,解:(1)单字长一地址指令格式:7 3 6,OP M A,各字段的作用:OP操作码字段,提供至少108种指令操作码;M寻址方式码字段,指出6种寻址方式;A形式地址字段,给出寻址所需的形式地址。,(2)A为6位,该指令直接寻址的最大范围为26=64字;(3)一次间址的寻址范围为216=64K字;多次间址的寻址范围为215=32K字;(4)立即数的范围:若采用补码表示为1FH20H;十进制表示为31-32;无符号数为063;(5)相对寻址的位移量范围在采用补码表示时同立即数范围,为31-32;,(6)六种寻址方式中,立即寻址指令执行时间最短,因为此时不需寻址;间接寻址指令执行时间

13、最长,因为寻址操作需访存一次到多次;相对寻址便于程序浮动,因为此时操作数位置可随程序存储区的变动而改变,总是相对于程序一段距离;变址寻址最适合处理数组问题,因为此时变址值可自动修改而不需要修改程序。,(7)为使指令寻址范围可扩大到4M,需要有效地址22位,此时可将单字长一地址指令的格式改为双字长,如下图示:7 3 6,OP M A,A,16 图中,指令的第一字保持原来格式不变,形式地址A扩展到第2个字。这样,直接寻址时,EA=A=16+6=22位,正好可访问4M地址空间。由于A的扩展,变址、基址、相对、立即数等寻址方式也扩展到22位。,(8)如使一条转移指令能转移到主存的任一位置,可采用上述双

14、字长一地址指令,通过选用合适的寻址方式完成。(如选用直接寻址就可转移到主存任一位置,但选用相对寻址则只能在2M范围内转移。)除此之外,(7)、(8)两题也可通过段寻址方式达到扩大寻址空间的目的(此时不需修改指令格式)。总之,不论采取何种方式,最终得到的实际地址应是22位。,方案二:(7)如果仍采用单字长指令(16位)格式,为使指令寻址范围扩大到4M,可通过段寻址方案实现。安排如下:硬件设段寄存器DS(16位),用来存放段地址。在完成指令寻址方式所规定的寻址操作后,得有效地址EA(16位),再由硬件自动完成段寻址,最后得22位物理地址。物理地址=(DS)26+EA 注:段寻址方式由硬件隐含实现。

15、在编程指定的寻址过程完成、EA产生之后由硬件自动完成,对用户是透明的。,方案三:(7)在采用单字长指令(16位)格式时,还可通过页面寻址方案使指令寻址范围扩大到4M。安排如下:硬件设页面寄存器PR(16位),用来存放页面地址。指令寻址方式中增设页面寻址。当需要使指令寻址范围扩大到4M时,编程选择页面寻址方式,则:EA=(PR)A(有效地址=页面地址“拼接”6位形式地址)这样得到22位有效地址。,通过基址寻址与段寻址获得实际地址的区别:1)基址寻址的基地址一般比较长(存储器地址位数),位移量比较短(=形式地址位数),相加后得到的有效地址长度=基地址长度。此时主存不分段。实际地址=有效地址=基地址

16、+位移量 段寻址是基址寻址的一种变种,当基地址短于存储地址时,基址寻址就变成了段寻址,基地址就叫做段地址,此时主存分段。实际地址=段地址偏移量+段内位移量(有效地址),2)基址寻址一般在机器字长存储地址长度的机器中,可直接通过寻址计算获得实际地址。在机器字长存储地址长度的机器中,由于CPU内部数据通路的限制,编程指定的任何一种寻址计算得到的有效地址长度都等于机器字长,为获得更长的地址字,硬件自动通过段寻址计算出存储器实际地址。此时除ALU之外,硬件还要增设专用的地址加法器。相关问题:*一般:机器字长=存储字长;*CPU中所有寄存器(包括基址寄存器)的位数=机器字长;,*通常:指令字长不一定等于

17、机器字长。早期的小型机由于字长较短,指令常以机器字长为单位变化(几字长指令,如PDP-11机),目前以字节长为单位变化(几字节指令)的较多。习题中指令字长=机器字长的假设只是为简单起见;*当设指令字长=存储字长(=机器字长)时,如用立即寻址,由于立即数由形式地址直接给出,而形式地址的位数肯定不足一个字长,因此立即寻址非常适用于编程给出短常数的场合。提示:寻址方式的正确选择与编程技巧有关。,19.CPU内有32个32位的通用寄存器,设计一种能容纳64种操作的指令系统。假设指令字长等于机器字长,试回答以下问题。(1)如果主存可直接或间接寻址,采用“寄存器存储器”型指令,能直接寻址的最大存储空间是多

18、少?画出指令格式并说明各字段的含义。(2)在满足(1)的前提下,如果采用通用寄存器作基址寄存器,则上述“寄存器存储器”型指令的指令格式有何特点?画出指令格式并指出这类指令可访问多大的存储空间?,解:(1)如采用RS型指令,则此指令一定是二地址以上的地址格式,指令格式如下:6 5 1 20,OP Ri I A,操作码 寄存器号 间接 形式地址 标志 直接寻址的最大空间=220=1M字 此指令格式的设计有较大的发挥余地,为简化设计,在此采用紧贴题意的答题方式,即只按题意要求的因素设计,不考虑扩展因素。,(2)如采用基址寻址,则指令格式中应给出基址寄存器号,以指定哪一个通用寄存器用作基址寄存器。指令

19、格式变为:6 5 1 1 5 14,OP Ri I B BRi A,其中:I、B可省(B为基址寻址标志),BRi为基址寄存器号。基址寻址时:寻址的最大空间=232=4G字 其寻址范围仅与基址位数有关,与形式地址位数无关。,20.什么是RISC?简述它的主要特点。,即精简指令集计算机特点:选取使用频度高的简单指令;指令长度固定,格式少,寻址方式少;只有存数/取数指令访存,其他指令不访存;CPU内有多个通用寄存器;采用流水线技术,大部分指令一个时钟完成;控制器采用组合逻辑实现;采用优化的编译程序。,2023/10/3,35,21.试比较RISC和CISC。,1.RISC更能 充分利用 VLSI 芯

20、片的面积,2.RISC 更能 提高计算机运算速度,指令数、指令格式、寻址方式少,通用 寄存器多,采用 组合逻辑,便于实现 指令流水,3.RISC 便于设计,可 降低成本,提高 可靠性,4.RISC 有效支持高级语言程序,5.RISC 不易 实现 指令系统兼容,2023/10/3,36,某计算机系统的指令字长为 22 位,具有无操作数、单操作数、双操作数三种指令格式,每个操作数地址为 7 位,当双操作数指令条数取最大值,而且单操作数指令条数也取最大值时,请问这三种指令最多可能拥有的指令条数总共是多少?255+127+128,2023/10/3,37,CPU的结构和功能,第 八 章,2.什么是指令

21、周期?指令周期是否有一个固定值?为什么?解:指令周期是指一条指令从开始取指令直到指令执行完这段时间。由于计算机中各种指令执行所需的时间差异很大,因此为了提高CPU运行效率,即使在同步控制的机器中,不同指令的指令周期长度都是不一致的,也就是说指令周期对于不同的指令来说不是一个固定值。讨论:指令周期长度不一致的根本原因在于设计者,为了提高CPU运行效率而这样安排的,与指令功能不同及指令实际执行时间不同没有什么必然关系。,4.设CPU内有下列部件:PC、IR、SP、AC、MAR、MDR和CU,要求:(1)画出完成间接寻址的取数指令LDAX(将主存某地址单元X的内容取至AC中)的数据流(从取指令开始)

22、。(2)画出中断周期的数据流。解:CPU中的数据流向与所采用的数据通路结构直接相关,不同的数据通路中的数据流是不一样的。常用的数据通路结构方式有直接连线、单总线、双总线、三总线等形式,目前大多采用总线结构,直接连线方式仅适用于结构特别简单的机器中。,R/-W,为简单起见,本题采用单总线将题意所给部件连接起来,框图如下:,中断系统,PC,MAR,MDR,SP,AC,Z,CU,IR,M,ALU,单总线(BUS),微命令序列(1)假设为一重间址,在上述数据通路中,完成间接寻址的取数指令LDAX的数据流如下页:,LDAX指令周期流程图:说 明,送指令地址CU向存储器发读令(读出指令)指向下一指令地址取

23、出指令指令译码,LDA,IR(X)MAR,存储器读(CU(R)M),MDR BUS AC,MDR BUS MAR,存储器读(CU(R)M),=1?,Y(间址),N,说 明形式地址X送MAR间接标志判断,本题为=1CU发读令(读EA)有效地址送MAR CU发读令(读数据)数据放入AC指令末的公操作,直接寻址,(2)中断周期流程图如下:说 明,关中断(0EINT),SPBUSMAR,SP+1SP,PCBUSMDR,存储器写(CU(-W)M),A,堆栈栈顶地址送MAR修改堆栈指针断点送内存进栈,A 说 明,SPBUSMAR,SP+1SP,向量地址BUSPC,PSWMDR,存储器写(CU(-W)M),

24、END,栈顶地址送MAR修改栈指针程序状态字送内存进栈转中断服务程序入口中断周期结束,讨论:解这道题有两个要素,首先要根据所给部件设计好数据通路,既确定信息流动的载体。其次选择好描述数据流的方法,无论采用什么样的表达方式,其关键都要能清楚地反映数据在通路上流动的顺序,既强调一个“流”字。较好的表达方式是流程图的形式。,5、中断周期前是什么阶段?中断周期后又是什么阶段?在中断周期CPU应完成什么操作?答:从CPU机器周期的时序层次来看,中断周期前是指令的执行阶段。中断周期后是取指令阶段。在中断周期CPU应完成关中断、保存断点和转中断服务程序入口三个操作。,16.计算机为了管理中断,在硬件上通常有

25、哪些设置?各有何作用?对指令系统有何考虑?解:计算机为了管理中断,在硬件上设有专门处理中断的机构中断系统。它通常包括:中断请求寄存器、中断优先级排队器、向量编码器、中断允许触发器(EINT)、中断标记触发器(INT)、中断屏蔽触发器(寄存器)等。功能如下:中断请求寄存器对中断源发来的一过性中断请求信号进行登记;中断优先级排队器对同时提出的多个中断请求信号进行裁决,选出一个最紧迫的进行响应;,向量编码器向量中断时,用来产生向量地址;中断允许触发器(EINT)CPU中的中断总开关,完成开、关中断状态的设置;中断标记触发器(INT)用来建立中断周期状态。INT=1,表示进入中断周期,即开始执行中断隐

26、指令;中断屏蔽触发器对于可屏蔽的中断源进行开、关中断操作,可视为各中断源的中断分开关;采用程序中断技术时,指令系统中往往有相关指令支持。常见的指令有:开中断、关中断、中断返回等。,17.在中断系统中,INTR、INT、EINT这三个触发器各有何作用?解:INTR中断请求触发器,用来登记中断源发出的随机性中断请求信号,以便为CPU查询中断及中断排队判优线路提供稳定的中断请求信号;EINT中断允许触发器,CPU中的中断总开关。当EINT=1时,表示允许中断(开中断),当EINT=0时,表示禁止中断(关中断)。其状态可由开、关中断等指令设置;INT中断标记触发器,控制器时序系统中周期状态分配电路的一

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

28、中;(INT并不是在整个中断过程中都存在)INT判断中断过程中是否接受其它中断请求,INT=0时,开中断,允许中断嵌套;(INT标记与中断嵌套技术没有任何关系。它不能表示出中断过程中是否接受其它中断请求,INT=0也不表示开中断)EINT判断CPU是否响应中断请求;(CPU根据EINT状态决定是否响应中断请求),当CPU响应中断时,EINT置1;(当EINT=1时,允许CPU响应中断)EINT确保CPU响应中断后,不受新的中断干扰;(CPU响应中断在先,进入中断周期后才使EINT=0,仅在单重中断时,整个中断过程保持EINT=0,不接受新的中断请求)EINT表示中断隐指令,INT起关中断作用;

29、(把EINT和INT的作用搞反了)INTR=1,判断哪个中断源有请求;(INTR对中断源的请求进行登记,当INTR=1时,表示有请求),24.现有A、B、C、D四个中断源,其优先级由高向低按ABCD顺序排列。若中断服务程序的执行时间为20s,请根据下图所示时间轴给出的中断源请求中断的时刻,画出CPU执行程序的轨迹。解:CPU执行程序的轨迹图如下:,25.设某机有五个中断源L0、L1、L2、L3、L4,按中断响应的优先次序由高向低排序为L0L1 L2 L3 L4,现要求中断处理次序改为L1L4 L2 L0 L3,根据下面的格式,写出各中断源的屏蔽字。解:各中断源屏蔽状态见下表:,表中:设屏蔽位=

30、1表示屏蔽,屏蔽位=0表示中断开放。为了使所有中断都能得到及时响应,现行程序的中断屏蔽字一般设为全开放(全0)状态。讨论:按照修改过的优先次序,当五个中断请求信号同时到来时,CPU中断处理过程如下图:图中括号内为各程序的屏蔽码。注意:中断屏蔽码的判优作用体现在对低级中断请求的屏蔽上,对于多个同时到来的高级中断请求信号之间则只有开放作用,没有判优作用。此时还需依赖硬件排队线路完成进一步的判优。,现行程序(00000),中断处理过程示意图(画法二:时空图表示),26.设某机配有A、B、C三台设备,其优先级按ABC降序排列,为改变中断处理次序,它们的中断屏蔽字设置如下:设备 屏蔽字 A 1 1 1

31、B 0 1 0 C 0 1 1 请按下图所示时间轴给出的设备请求中断的时刻,画出CPU执行程序的轨迹。设A、B、C中断服务程序的执行时间均为20s。,解:CPU执行程序的轨迹图如下:,主要注意问题:1)轨迹的连续性;2)程序的转出、返回轨迹及时刻;3)现行程序在坐标系中的位置。,讨论:当从B中断转到C中断时,不返回现行程序,下述程序运行轨迹是错误的:,27.设某机有3个中断源,其优先级按123降序排列。假设中断处理时间均为,在下图所示的时间内共发生5次中断请求,图中表示1级中断源发出中断请求信号,其余类推,画出CPU执行程序的轨迹。解:CPU执行程序的轨迹图见下页:,CPU执行程序的轨迹图,28.设某机有4个中断源1、2、3、4,其响应优先级按1234降序排列,现要求将中断处理次序改为4132。根据下图给出的4个中断源的请求时刻,画出CPU执行程序的轨迹。设每个中断源的中断服务程序时间均为20s。解:CPU执行程序的轨迹图见下页:,CPU执行程序的轨迹图:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号