精华内容
下载资源
问答
  • 处理器一条指令需要几时钟周期

    千次阅读 2019-04-12 18:08:56
    一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。时钟周期表示了SDRAM所能运行的最高频率。更小的时钟周期就意味着更高的工作频率。  时钟周期是同步电路中时钟基础频率的倒数。它以时间...

     时钟周期简介

      时钟周期也称为振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。时钟周期表示了SDRAM所能运行的最高频率。更小的时钟周期就意味着更高的工作频率。

      时钟周期是同步电路中时钟基础频率的倒数。它以时间动作重复的最小周期来度量,度量单位采用时间单位。在单个时钟周期内(现代非嵌入式微处理器的这个时间一般都短于1纳秒),逻辑零状态与逻辑一状态来回切换。由于发热和电气规格的限制,周期里逻辑零状态的持续时间历来要长于逻辑一状态。

      处理器一条指令需要几个时钟周期

      CPU时钟周期概述

      在微程序控制器中,时序信号比较简单,一般采用节拍电位——节拍脉冲二级体制。就是说它只要一个节拍电位,在节拍电位又包含若干个节拍脉冲(时钟周期)。节拍电位表示一个CPU周期的时间,而节拍脉冲把一个CPU周期划分为几个叫较小的时间间隔。根据需要这些时间间隔可以相等,也可以不等。

      指令周期是取出并执行一条指令的时间。

      指令周期常常有若干个CPU周期,CPU周期也称为机器周期,由于CPU访问一次内存所花费的时间较长,因此通常用内存中读取一个指令字的最短时间来规定CPU周期。这就是说,一条指令取出阶段(通常为取指)需要一个CPU周期时间。而一个CPU周期时间又包含若干个时钟周期(通常为节拍脉冲或T周期,它是处理操作的最基本的单位)。这些时钟周期的总和则规定了一个CPU周期的时间宽度。

      处理器一条指令需要几个时钟周期

      处理器一条指令需要几个时钟周期

      对于软件工程师来说,印象流我们可能会觉得执行一条指令一个时钟周期嘛,一条指令算是一个最小的原子操作,不可能再细分了吧。

      如果看看诸如《see mips run》,《arm体系架构》等书籍就会了解到,这个问题可没这么简单了,因为处理器设计中使用了流水线技术。

      一条指令还是相当复杂的,处理器在一个时钟周期内肯定是完不成的,可能需要好多个时钟周期来完成执行。如果这样让处理器执行完一条指令,再去执行另一条,处理器的效率是很低的,假如一条指令是5个时钟周期完成,对于500MHZ的处理器串行运行指令,1秒内取指100000000次。

      因此处理器引入了流水线技术,将一条指令划分为多个功能,由不同的功能部件来执行,并且这些功能部件可以并行工作。下面是一个arm7的三级流水线运行图。

      处理器一条指令需要几个时钟周期

      流水线划分为取指 译码 执行,但并不是仅需3个时钟周期即执行完指令。因为执行单元模块的操作较多,可能需要多个周期,取指 译码一般是一个时钟周期,这样可以看出虽然一条指令完成需要多个时钟周期,但是总体来说看在每个时钟周期都有一条指令开始取指。如果我们的处理器是500MHZ,则1秒内取指了500000000次。

      不同的处理器设计时流水线级数不一样,现在主流的有三级 五级 七级,增加流水线级数,简化流水线的各级逻辑,可以提高处理器的性能。

      回答咱们开头的问题也就明白了,一条指令需要的时钟周期还真不固定,这得看处理器的流水线级数,也得看该指令的复杂度,在执行阶段需要几个时钟周期。

      对于流水线各级具体工作这里就不细说了,网上文章很多,毕竟咱们是做软件的,硬件点到为止,流水线各级工作是有处理器内部逻辑单元来完成的,对于软件来说都是不可见的,软件可操作的最小原子操作就是指令。

      不过呢,处理器的流水线技术在有一个事情对咱们软件造成了影响,那就是PC值。

      据我了解的处理器流水线设计,前三级基本都是取指 译码 执行。处理器的PC寄存器中存储的是处理器的取指地址,根据上述流水线机制,而我们的处理器执行的指令地址是落后于要去预取的指令的地址,落后2个时钟周期。

      也就是说我们在取了第一条指令后,等该指令到了执行阶段时,我们的处理器其实已经预取了往后的第二条指令了。

      对于32位处理器,一条指令占据4字节。这也就是PC值 = 当前指令地址 + 8的根本原因啦。

    展开全文
  • 取指、译码、执行这只需要一个时钟周期就能完成吗?不应该是一个机器周期吗?
  • 处理器一条指令需要几时钟周期?

    万次阅读 多人点赞 2016-03-30 19:47:42
    思考小问题,处理器执行一条指令需要几时钟周期。 对于软件工程师来说,印象流我们可能会觉得执行一条指令时钟周期嘛,一条指令算是一最小的原子操作,不可能再细分了吧。 如果看看诸如《see mips run》...

    思考个小问题,处理器执行一条指令需要几个时钟周期。
    对于软件工程师来说,印象流我们可能会觉得执行一条指令一个时钟周期嘛,一条指令算是一个最小的原子操作,不可能再细分了吧。
    如果看看诸如《see mips run》,《arm体系架构》等书籍就会了解到,这个问题可没这么简单了,因为处理器设计中使用了流水线技术。
    一条指令还是相当复杂的,处理器在一个时钟周期内肯定是完不成的,可能需要好多个时钟周期来完成执行。如果这样让处理器执行完一条指令,再去执行另一条,处理器的效率是很低的,假如一条指令是5个时钟周期完成,对于500MHZ的处理器串行运行指令,1秒内取指100000000次。
    因此处理器引入了流水线技术,将一条指令划分为多个功能,由不同的功能部件来执行,并且这些功能部件可以并行工作。下面是一个arm7的三级流水线运行图。
    这里写图片描述
    流水线划分为取指 译码 执行,但并不是仅需3个时钟周期即执行完指令。因为执行单元模块的操作较多,可能需要多个周期,取指 译码一般是一个时钟周期,这样可以看出虽然一条指令完成需要多个时钟周期,但是总体来说看在每个时钟周期都有一条指令开始取指。如果我们的处理器是500MHZ,则1秒内取指了500000000次。
    不同的处理器设计时流水线级数不一样,现在主流的有三级 五级 七级,增加流水线级数,简化流水线的各级逻辑,可以提高处理器的性能。
    回答咱们开头的问题也就明白了,一条指令需要的时钟周期还真不固定,这得看处理器的流水线级数,也得看该指令的复杂度,在执行阶段需要几个时钟周期。
    对于流水线各级具体工作这里就不细说了,网上文章很多,毕竟咱们是做软件的,硬件点到为止,流水线各级工作是有处理器内部逻辑单元来完成的,对于软件来说都是不可见的,软件可操作的最小原子操作就是指令。
    不过呢,处理器的流水线技术在有一个事情对咱们软件造成了影响,那就是PC值。
    据我了解的处理器流水线设计,前三级基本都是取指 译码 执行。处理器的PC寄存器中存储的是处理器的取指地址,根据上述流水线机制,而我们的处理器执行的指令地址是落后于要去预取的指令的地址,落后2个时钟周期。
    也就是说我们在取了第一条指令后,等该指令到了执行阶段时,我们的处理器其实已经预取了往后的第二条指令了。
    对于32位处理器,一条指令占据4字节。这也就是PC值 = 当前指令地址 + 8的根本原因啦。

    展开全文
  • 取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。 程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增:若为单字长...

    指令的5个阶段

    1.取指令阶段 IF (使用PC寄存器组和存储器)

    取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。

    程序计数器PC中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC中的数值将根据指令字长度而自动递增:若为单字长指令,则(PC)+1 -> PC;若为双字长指令,则(PC)+2 -> PC,依此类推。

    PC -> AR -> Memory
    Memory -> IR
    

    2.指令译码阶段 ID (指令寄存器组)

    取出指令后,计算机当即进入指令译码(Instruction Decode,ID)阶段。

    在指令译码阶段,指令译码器按照预约的指令格式,对取回的指令进行拆分和解释,识别区分出不一样的指令类别以及各类获取操做数的方法。

    在组合逻辑控制的计算机中,指令译码器对不一样的指令操做码产生不一样的控制电位,以造成不一样的微操做序列;在微程序控制的计算机中,指令译码器用指令操做码来找到执行该指令的微程序的入口,并今后入口开始执行。

    { 1.Ad
    Memory -> IR -> ID -> { 2.PC变化
    { 3.CU(Control Unit)
    

    3.执行指令阶段 EX (ALU算术逻辑单元)

    在取指令和指令译码阶段以后,接着进入执行指令(Execute,EX)阶段。

    此阶段的任务是完成指令所规定的各类操做,具体实现指令的功能。为此,CPU的不一样部分被链接起来,以执行所需的操做。

    例如,若是要求完成一个加法运算,算术逻辑单元ALU将被链接到一组输入和一组输出,输入端提供须要相加的数值,输出端将含有最后的运算结果。

    Memory -> DR -> ALU
    

    4.访存取数阶段 MEM

    根据指令须要,有可能要访问主存,读取操做数,这样就进入了访存取数(Memory,MEM)阶段。

    此阶段的任务是:根据指令地址码,获得操作数在主存中的地址,并从主存中读取该操做数用于运算。

    Ad -> AR -> AD -> Memory
    

    5.结果写回阶段 WB (寄存器组)

    做为最后一个阶段,结果写回(Writeback,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式:结果数据常常被写到CPU的内部寄存器中,以便被后续的指令快速地存取;在有些状况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标志位的状态,这些标志位标识着不一样的操做结果,可被用来影响程序的动做。

    DR -> Memory
    

    图解

    在这里插入图片描述

    展开全文
  • 计算机如何执行一条机器指令

    千次阅读 2019-10-11 11:09:38
    文章目录指令运行过程:微程序控制基本概念:寻址方式: 指令运行过程:  在上篇我们谈到,计算机处理段程序,就会将程序翻译成机器指令,然后执行完成相应的任务。执行指令的过程分为取指令阶段、分析取数阶段...

    指令运行过程:

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

    • 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位),并以一个段寄存器为基准,作为操作数的地址。指定的寄存器一般是一个基址寄存器或变址寄存器。

    • 基址变址寻址方式

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

    • 相对基址变址寻址方式

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

    展开全文
  • 一条cpu指令执行过程

    千次阅读 2017-09-12 23:07:58
    计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器中的...
  • cpu指令运行过程

    千次阅读 2018-06-11 16:01:46
    计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器中的...
  • CPU: 1.寄存器; 2.控制器CU(Control Unit):      &... 指令寄存器IR(InstructionRegister)、
  • 一条指令在cpu中的执行流程(理解CPU组成)

    万次阅读 多人点赞 2014-04-15 13:04:03
    几乎所有的冯·诺伊曼型计算机的CPU,其工作都可以分为5个阶段:取指令指令译码、执行指令、访存取数、结果写回。
  • 计算机底层执行一条指令的过程

    千次阅读 2014-02-21 14:29:30
    计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄
  • 计算机指令执行过程详解

    千次阅读 2020-12-31 00:40:55
    、计算机的基本组成 冯·诺依曼计算机的特点(机器以运算器为中心) 1. 计算机由控制器(分析和执行...3. 程序自动运行 现代计算机由大部分组成(已经转化为以存储器为中心) 1.CPU(CentralProcessingUnit) ...
  • 篇:计算机怎么做到存储内容的下—...我们还做了两种内存: 寄存器 - 很小的块内存,能存一个值 ,之后我们增大做出了 ,RAM 是大块内存,能在不同地址存大量数字,现在是时候把这些放在一起,组建计算机的...
  • 跟随一条指令来看LLVM的基本结构

    千次阅读 2020-01-04 18:41:44
    LLVM是一个很复杂的软件,了解LLVM的工作原理不是很容易,然而,对于刚开始接触LLVM整个框架的工作原理来说,详细而深入,不如广泛而浅显,所以有了这篇文章。
  • C语言程序从编写到运行历经的几个阶段 前言   在完成 .c 或 .cpp 文件的编写后,我们通常直接 gcc 或 g++ 后接文件名,就可以在当前文件夹下生成 a.out 可执行文件, 之后输入 ./a.out 即可执行该二进制可执行...
  • 4.1 ori指令说明 ori指令格式: 索引为rs的通用寄存器的值与扩展后的立即数进行or运算,结果存储到rt (1) 符号扩展 (2)通用寄存器 32通用寄存器,使用某个通用寄存器只需要给出相应的索引,索引占用5bit 4.2...
  • 单片机执行指令过程详解

    千次阅读 2020-03-04 21:54:22
    单片机执行指令过程详解 单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 ...
  • 计算机组成与系统结构课程设计 ...《计算机组成与系统结构课程设计》是计算机学院各专业集中实践性环节之,是学习完《计算机组成与系统结构》课程后进行的次全面的综合练习。其目的是综合运用所学计...
  • 请简述在你所熟悉的处理器中比如Cortex A9,一条存储读写指令的执行全过程? 经典的处理器架构的流水线是五级流水线:取指,译码,发射,执行和写回。  现代的处理器设计上都采用了超标量体系结构(superscalar ...
  • 将验证我们的OpenMIPS是否实现正确,包含:流水线是否正确、ori指令是否实现正确。在验证之前,需要首先实现指令存储器,以便OpenMIPS从中读取指令
  • 中央处理器——指令执行过程

    千次阅读 2021-05-24 14:17:10
    指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。 指令周期常常用若干机器周期来表示,机器周期又叫CPU周期 一机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位...
  • 计算机指令的执行过程详解

    千次阅读 2020-05-04 20:15:19
    比如说我现在想执行一条指令,执行完这指令,我会从存储器里面取一数据送到我的运算器里面进行运算,那么这过程到底是在计算机里面是怎么执行的呢? 首先,它涉及到两部分,就是一是控制器,它在CPU里面,...
  • 单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。
  • 首先将PC寄存器的内容装入MAR,并且将PC寄存器的值+ 1(因为我们完成当前这一条指令之后还需要继续进行下一条,就是通过这种方式来实现指令的顺序执行的)。然后将地址指向的内容装入DR,最后控制单元将DR中的内容送入...
  • nginx-lua 运行阶段

    千次阅读 2017-03-15 18:46:17
    Nginx 处理请求的过程一共划分为 11 个阶段,按照执行顺序依次是
  • RISC-V 指令格式和6种基本整数指令

    千次阅读 2021-09-07 09:22:41
    指令格式是指令使用二进制编码表示的结构形式,一般一条指令分为操作码和地 址码两部分: 一、操作码 操作码表示指令的属性功能和执行的指令类型。操作数对应的二进制位数决定了计算机能够实现的最大指令数目。例如...
  • 指令周期

    千次阅读 2019-11-07 22:57:05
    指令周期:取出并执行一条指令所需要的时间(解释一条指令所需要的时间) 每条指令的指令周期不同 有些指令周期就没有执行周期——例如空操作(NOP) 有些指令的取指周期和执行周期是等长的——add mem 有些指令的...
  • 计算机执行指令的过程详解

    万次阅读 多人点赞 2020-02-20 11:32:22
    、计算机的基本组成 冯·诺依曼计算机的特点(机器以运算器为中心) 计算机由控制器(分析和执行机器指令并控制各部件的协同工作)、运算器(根据控制信号对数据进行算术运算和逻辑运算)、存储器(内存存储中间...
  • 【笔记】指令系统(

    千次阅读 2018-04-29 00:50:32
      每一条机器语言的语句称为机器指令,而又将全部机器指令的集合称为机器的指令系统。 1.指令的一般格式   指令是由操作码和地址码两部分组成的。 操作码   操作码用来指明该指令索要完成的操...
  • ​费解了好久,一直不明白org是干嘛的。首先平时编程绝对不加org也能运行,为什么写引导... ​先说第二问题,在BIOS自检等系列工作完成后,要开始引导了。计算机会将硬盘0面0道1扇区512字节加载到07c00h(0000::7c

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,679
精华内容 33,871
关键字:

一条指令运行的3个阶段