精华内容
下载资源
问答
  • 计算机底层执行一条指令的过程

    千次阅读 2014-02-21 14:29:30
    计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄
    1.先是IP指向这条指令->指令寄存器;
    2.分解指令为微指令,计算机实际只会执行微指令,自己分一下,不记得很清楚了,书的不是有很多吗?

    这是在网上找到的(讲的很清楚,希望有用):
    计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。
    取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器
    分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。
    计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。

    一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。

    下面我们将举个实例来说明指令的执行过程:

    开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。

    例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把操作数E0H送入累加器

    0000H单元中已存放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段,其次序是:
    1 程序计数器的内容(这时是0000H)送到地址寄存器;

    2 程序计数器的内容自动加1(变为0001H);

    3 地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中;

    4 CPU使读控制线有效;

    5 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。
    由于本次进入指令寄存器中的内容是74H(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H单元取出。因为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中PC="0002H",PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定的功能。
    展开全文
  • 指令和程序有何区别?简介指令的执行过程? 指令:指令是指计算机执行某种操作的命令,它由一串二进制数码组成。计算机执行了一指令序列,便可完成...4.完成上述操作后,指令计数器加1,执行下一条指令做准备。 ...

    指令和程序有何区别?简介指令的执行过程?

    指令:指令是指计算机执行某种操作的命令,它由一串二进制数码组成。计算机执行了一指令序列,便可完成预定的任务,这一指令序列就称为程序;
    程序:程序是计算机所以指令的集合,称为该计算机的指令系统;
    指令的执行过程分为四步:1.取指令;2.分析指令;3.执行指令;4.完成上述操作后,指令计数器加1,为执行下一条指令做准备。

    展开全文
  • 在计算机中,为了便于管理,常把一条指令的执行过程划分若干个阶段,每一阶段完成一项工作,该阶段所花费的时间称为机器周期(CPU周期)。指令周期常常用若干个机器周期数来表示。 一个完整的指令周期:指周期、...

    指令周期相关概念

    CPU从主存中取出并执行一条指令所需要的时间称为指令周期
    在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作,该阶段所花费的时间称为机器周期(CPU周期)。指令周期常常用若干个机器周期数来表示。
    一个完整的指令周期:取指周期、间址周期、执行周期、中断周期

    指令执行的方案

    用MIPS指令的执行说明(不懂也没关系,知道思想即可)
    IF(取指)、ID(译码/取数)、EX(执行)、MEM(访存)、WB(写回)

    单指令周期

    • 所有指令的执行周期固定为单一的时钟周期
    • 指令之间串行完成,即下一条指令只能在前一条指令结束之后启动。
    • 时钟周期由最长的指令周期决定。(因为需要保证完成所有指令的功能。比方说采用R型指令的指令周期作为周期长度,那么LW指令将无法完成取数和存数的功能)
    • 哈佛体系结构:指令存储区和数据存储区分别保存指令和数据

    如:R型指令:IF,ID,EX,WB
    LW指令:IF,ID,EX,MEM,WB

    由此可知,该执行方案会造成时间的损失。因为单周期的设计中,时钟周期对所有的指令等长。而时钟周期由最长的执行路径所决定,一般为取数指令。但是某些指令类型本可以在更短的时间内完成。
    解决方案:

    • 采用可变的时钟周期(还是单时钟周期,但是不同类型的指令的时钟周期的长度不同)
      优点:采用可变的时钟周期,时间性能比单周期高
      缺点:但是控制比单周期要复杂和困难,得不偿失。
    • 改进的方案:使用多指令周期

    多指令周期

    • 将一条指令的执行拆分成多个步骤,每一个步骤一个时钟周期,则指令的执行周期为多个时钟周期。不同指令的执行步骤不同,则包含的时钟周期数不同。
    • 指令之间串行完成,即下一条指令只能在前一条指令结束之后启动。
      优点
    • 不同的指令的执行占用不同的时钟周期数
    • 一个功能单元可以在一条指令的执行过程中使用多次,只要不在一个时钟周期
      缺点
      需要添加多个寄存器用来保存个步骤执行的结果

    小结:

    单周期和多周期的比较:

    • 单周期下的功能部件不能重复使用;多周期可以重复使用
    • 单周期下的执行结果保存在寄存器和存储器中;多周期还需要添加临时的寄存器存放每个步骤的执行结果
    • 单周期的控制信号在指令的执行过程中不会发生改变;多周期的控制信号在指令的执行过程中(每一个周期之后)会发生改变

    流水线方案

    引言
    之前的单周期和多周期处理器的指令执行都是串行方式。在串行方式下,CPU总是在执行完一条指令后才能取出下一条指令执行,没用利用部件的并行性。对此,指令的执行可以采用流水线的方式,将多条指令的执行相互重叠起来,以提高CPU执行指令的效率。

    展开全文
  • 主要任务:从内存中取出指令,并计算下一条指令的地址 从内存取出指令:控制器设置控制信号MemRead和IRWrite有效,将IorD置0以选择PC作为内存地址来源 计算下一条地址:控制器置控制信号ALUSrcA

    目录

    https://blog.csdn.net/weixin_45792450/article/details/109314693


    指令执行阶段

    单个时钟周期内执行单个阶段,指令执行有序执行

    执行数据通路

    注:上述图中ALUOp=01应该为:ALU执行减法

    执行过程解析

    取指-IF阶段

    主要任务:从内存中取出指令,并计算下一条指令的地址

    从内存取出指令:控制器设置控制信号MemRead和IRWrite有效,将IorD置0以选择PC作为内存地址来源

    计算下一条地址:控制器置控制信号ALUSrcA为0,ALUSrcB为01,ALUOp为00(加法运算),ALU实现计算PC+4,置PCSrc为00,下一条指令地址成功存入PC

    指令译码和读取寄存器-ID阶段

    主要任务:翻译指令和准备数据,IF和ID阶段均不知道指令内容

    由于指令没有具体翻译出来,具体执行何种指令是未知的,此时我们需要多做一些准备,以应对可能需求,尽管可能有些步骤在某些指令看来是多余的,但所幸没有坏处。

    读取寄存器:读取寄存器Rs和Rt,并分别存入寄存器A和B

    如果是分支指令,下一周期可能还要用到PC的地址,故需要提前准备

    准备偏移地址:控制器置ALUSrcA=0,ALUSrcB=11,ALUOp=00(加法运算),这样偏移地址就计算出来,并存入寄存器ALUOut了

    指令执行,存储地址计算或者分支完成-EX阶段

    主要任务:完成具体的指令操作或者准备具体的指令数据

    访存指令:控制器置ALUSrcA=1,ALUSrcB=10,ALUOp=00,ALU将操作数相加,得到存储地址,存入ALUOut

    此处考虑R型的运算指令,立即数型的运算指令对比之下不难实现。

    运算指令:控制器置ALUSrc=1,ALUSrcB=00,ALUOp=10,完成算术运算,结果存入ALUOut

    分支指令:控制器置ALUSrcA=1,ALUSrcB=00,ALUOp=01,以进行等值测试;置PCWriteCond=1,PCSrc=01,若ALU的零输出为1,与PCWriteCond做与运算得1,最后写入运算后的PC值,否则不做任何处理。

    跳转指令:控制器置PCSrc=10,PCWrite=1,通过一个或门后将跳转地址送入PC

    存储器访问或R型指令完成-WB阶段&MeM阶段

    这个阶段的R型指令会将结果写回寄存器,对访存指令来说将进行访存操作

    运算指令:控制器置RegDst=1,RegWrite=1,MemtoReg=0,向寄存器Rd存入计算结果

    访存指令:若为取字指令,则从内存读出数据,并写入MDR;若为存字指令,则直接将数据写入内存。控制器置MemRead或MemWrite=1,IorD=1,实现数据直接存入内存或者从内存取数据到MDR。

    取字指令的尾声:这一步将MDR的数据写入对应寄存器。控制器置MemtoReg=1,RegWrite=1,RegDst=0,实现寄存器数据的写入。

    展开全文
  • 加法指令执行过程

    千次阅读 2018-06-15 11:05:17
    指令:(rs) + ((rs1)+disp) -> rd1.CPU发出访问取指令的请求:PC->MAR->AB,发出取指信息后判断ADS是否有效,若ADS= 0 地址选通有效,...PC为取下一条指令做准备,将下一条指令的地址存入...
  • 本文说明的是单纯的一般的计算指令从储存设备中出来之后,运行时(址,译码,执行,回写 -- 这些操作)在CPU和我们的主存之间的执行过程 以下,我们使用一条简单的指令进行引入,后续再添加其他的情况: ADD...
  • 开机后一条指令

    千次阅读 2016-01-26 13:45:57
    关于电脑加电后的第一条指令,有很多人在网络上问过,但解答并不是那么的清晰,csdn论坛上也有很多这类的讨论帖, 例如:CPU在RSET后的第一条执行...2.第一条指令的地址什么是0xFFFFFFF0 3.第一条指令存储在什么地方
  • 转载:ARM上电启动及Uboot代码分析 ...本文拟详细分析Uboot从上电,到第一条指令的执行,同时分析代码对于cache、TLB等部件的操作过程。 以下内容以u-boot-2012.04.01源码例,从网上很容易下载该版本...
  • 一条指令的执行过程分解为取指、分析、执行三步,按照流水方式执行,若取指时间为4t,分析时间为2t,执行时间3t,则执行100条指令需要的时间为____t。 A 200 B 300 C 400 D 405 2. 解析 执行时间=第一条指令执行...
  • 计算机程序的执行过程

    千次阅读 2016-04-26 10:21:21
    整理了一下关于计算机程序执行过程的内容。 网友(星月小木木 )在百度知道中的回答...第一条指令的执行过程:  取指令阶段:  ①将程序计数器PC的内容(00H)送至地址寄存器AR,记PC AR。  ②程序计数器
  • 计算机执行指令

    2017-01-25 10:39:00
    ADD这是一条加法指令 通用寄存器R0内容+地址6存储单元内容=运算结果(更新到R0) 2.过程 R0里面数00000011十进制3 地址0110(6)存储单元内容00000010十进制2 也就是计算3+2=5并且把运算结果...
  • 用生活例子引入流水线逻辑:** ...然而指令执行过程有很多阶段,比如经典五级流水线结构,把指令执行阶段分成五级,分别为取指、译码、执行、访存、写回,就像手机组装生成线上把组装、检...
  • IF(instruction fetch):取指令,把一条指令从内存读到指令寄存器 ID(instruction decode):指令译码+从寄存器中读取需要操作数 EXE(execute):执行 WB(write back):写回,将最终结果写回相关寄存器或...
  • 指令流水线吞吐率

    千次阅读 2016-07-10 21:44:24
    假设一个四段流水线,指段的时间t,译码段的时间t,数段的时间3t,执行段的时间... 从图中不难看出,第一条指令的执行时间是6t;第二条指令在执行时停顿了两个周期,第二条指令的完成时间比第一条指令的完成
  • 机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称...
  • 机器周期又称为CPU周期,一个机器周期所对应的指令称为机器指令,一个机器周期就对应着一个具体指令的执行,即CPU一次以处理一条机器指令基本单位。一条机器指令要么是指,要么是间址,要么是执行,要么中断等,...
  • 指令流水

    2014-06-13 02:27:00
    相关问题: 数相关:第k、k+1条指令的数据地址之间有关联。 指令相关:第k+1条指令的内容决于第k...把一条指令的解释分解更多的子过程,是重叠的延伸(重叠是分为两个过程)。 流水线时空图 流水线...
  • 程序执行的过程: 比如我们要执行3 + 2 程序计数器(PC) = 指令地址 ...址就是从寄存器里取一条指令放在IR寄存器 左上角图,PC寄存器里面放值是300 那么我们就从内存地址300位上...
  • 指令的执行被分成:指、译码、访存、执行、写回等若干个阶段。然后,多条指令可以同时存在于流水线中,同时被执行。 指令流水线并不是串行的,并不会因为个耗时很长的指令在“执行”阶段耗时很长时间,而...
  • 5.5 指令流水线

    千次阅读 2019-09-08 20:24:03
    一条指令的执行过程可以分为多个阶段,如果采用三个阶段,就有指,分析,执行。 当多条指令在处理器中执行时,可以采用三种方式: 1> 顺序执行方式 设指,分析,执行三个阶段的时间都相等...
  • (1)、从内存取出一条指令执行条指令的时间总和 (2)、指令功能不同,其指令周期不同 3、机器周期 又称CPU周期,把一个指令周期划分若干机器周期 (1)、通常用从内存读取一条指令字/数据字的最短时间来规定CPU...
  • 1、时钟周期也称为振荡周期, 定义时钟...在计算机中, 为了便于管理, 常把一条指令的执行过程划分若干个阶段, 每一阶段完 成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完 成一...
  • 指令周期指令周期是CPU从内存取出一条指令并执行这条...在计算机中,为了便于管理,常把一条指令的执行过程划分若干个阶段,每一阶段完成一项工作。如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作
  • 好像。。。。有段时间没有更新了吧。...假设一条指令的执行过程可以分为多个阶段(或者称之过程),假设分为两段:取指令和执行指令。那么在串行的方式下,各个指令按顺序执行: 但是在并行下,指令可以这样执...
  • Java多线程之指令重排

    2020-10-11 16:04:13
    通常一条指令的执行可以简单分为以下几个步骤: 取指(都取指令) IF 译码和去寄存器操作数 ID 执行或者有效地址计算 EX 存储器访问 MEM 写回 WB 同样的,汇编指令也不是一步就能执行完的,CPU实际工作时,需要分为...
  • 处理器架构 指令

    2020-03-19 12:23:59
    处理器完成一条指令过程 取指令、指令译码和执行指令 时钟周期 机器周期 指令周期 程序 我们在编写程序时候其实可以对程序代码划分两个部分, 一部分是程序编写完成后就不再需要对其进行修改了(也就是逻辑...
  • 机器周期,为了便于管理,常把一条指令的执行过程划分若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。 指令...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 178
精华内容 71
关键字:

一条指令的执行过程为取指令