计算机如何执行一条机器指令

一曲冷凌霜 提交于 2019-11-28 15:36:42

指令运行过程:

 在上篇我们谈到,计算机处理一段程序,就会将程序翻译成机器指令,然后执行完成相应的任务。执行指令的过程分为取指令阶段、分析取数阶段和执行阶段。

  • 1.取指阶段:

    图中概念解释:

    PC(程序计数器),MAR(存储地址寄存器),CU(控制单元),IR(指令寄存器)

    AB(地址总线) ,DB(数据总线), CB(控制总线)。

    取指令阶段完成的任务是将现行指令从主存中取出来并送至指令寄存器中去,具体的操作如下:
    ① 将程序计数器(PC)中的内容先送至存储器地址寄存器(MAR),然后送至地址总线(AB).
    ② 由控制单元(CU)经控制总线(CB)向存储器发读命令.

    ③ 从主存中取出的指令通过数据总线(DB)送到存储器数据寄存器(MDR).
    ④ 将MDR的内容送至指令寄存器(IR)中.
    ⑤ 将PC的内容递增,为取下一条指令做好准备.

在这里插入图片描述

  • 2.分析取数阶段:

    取出指令后,指令译码器(ID)可识别和区分出不同的指令类型.此时计算机进入分析取数阶段,以获取操作数.由于各条指令功能不同,寻址方式也不同,所以分析取数阶段的操作是各不相同的.

    对于无操作数指令,直接进入执行阶段。

    取数要计算操作数有效地址。对于不同的寻址方式,有效地址的计算方法是不同的,有时需要多次访问主存才能取出操作数(间接寻址)。如果通用寄存器中有,则不需要访问主存。

  • 3.执行阶段:

    完成指令规定的各种操作,形成稳定的运算结果,并存储起来。

计算机的基本工作过程就是取指令、取数、执行指令,然后再取下一条指令… ,如此周而复始,直到指令或外来的干预为止。

微程序控制基本概念:

 微程序设计技术的实质就是将程序设计和存储技术相结合。用程序设计的思想组织设计控制逻辑,将控制信号编成控制字(微指令),在把微指令组合成微程序,从而对计算机发号施令。 这项技术最早是剑桥大学教授提出,由IBM在1964年成功在IBM360系列机采用并发展起来。现在的计算机基本都是微程序控制的计算机。

  • 微命令:
     一条机器指令可以分解成一个微操作序列,这些微操作是计算机中最基本的、不可再分解的操作.在微程序控制的计算机中,将控制部件向执行部件发出的各种控制命令叫做微命令,它是构成控制序列的最小单位.

例如:打开或关闭某个控制门的电位信号、某个寄存器打入脉冲等。

  • 微操作:
     微命令和微操作是一一对应的。微命令是微操作的控制信号,微操作是微命令的操作过程。

  • 微指令:
     微指令是指控制存储器中的一个单元的内容,即控制字,是若干个微命令的集合.存放控制字的控制存储器的单元地址就称为微地址

  • 微程序:
     一系列微指令的有序集合就是微程序。每一条机器指令都对应一个微程序。

几个周期区别

一个振荡周期=一个时钟周期;
一个机器周期=六个状态周期;
一个状态周期=两个节拍;
一个节拍=一个时钟周期;
一个指令周期=N个机器周期;
综上:1个指令周期=N个机器周期=6N个状态周期=12N个节拍=12N个时钟周期=12N个振荡周期
时钟周期:一个脉冲所需要的时间,为时钟晶振频率的倒数
指令周期:执行一条指令所需要的时间,是从取指令、分析指令到执行完指令所需的全部时间
机器周期:计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期,所以一个指令周期一般由若干个机器周期组成。

寻址方式:

  • 立即寻址方式

      操作数包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。这种操作数称为立即数。立即寻址方式所提供的操作数紧跟在操作码后面,与操作码一起放在指令代码段中,不需要到其他地址单元中去取。这种寻址方式主要用于给寄存器或存储单元赋初值的场合。立即寻址方式是这七种寻址方式中速度最快的寻址方式。

  • 寄存器寻址方式

    寄存器寻址的特点是操作数在CPU内部的寄存器中,在指令中指定寄存器号。由于操作数在寄存器中,不需要通过访问存储器来取得操作数,所以采用寄存器寻址方式的指令执行速度较快。

  • 直接寻址方式

    直接寻址的操作数在存储器中,指令直接包含有操作数的有效地址。

  • 寄存器间接寻址方式

    寄存器间接寻址的操作数在存储器中,操作数有效地址在寄存器中

  • 寄存器相对寻址方式

    该寻址方式是以指定的寄存器内容,加上指令中给出的位移量(8位或16位),并以一个段寄存器为基准,作为操作数的地址。指定的寄存器一般是一个基址寄存器或变址寄存器。

  • 基址变址寻址方式

    基址加变址寻址方式是指将寄存器(该寄存器一般指基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。

  • 相对基址变址寻址方式

    操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容及指令中给定的位移量相加得到。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!