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

    万次阅读 多人点赞 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的根本原因啦。

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

    千次阅读 2017-09-12 23:07:58
    计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器的...
    计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。
    
    取指令的任务是:根据程序计数器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就是这样一条一条地执行指令,完成所有规定
    展开全文
  • 计算机如何执行一条机器指令

    千次阅读 2019-10-11 11:09:38
     在上篇我们谈到,计算机处理段程序,就会将程序翻译成机器指令,然后执行完成相应的任务。执行指令的过程分为取指令阶段、分析取数阶段和执行阶段。 1.取指阶段: 图概念解释: PC(程序计数器),MAR...

    指令运行过程:

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

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

    • 基址变址寻址方式

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

    • 相对基址变址寻址方式

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

    展开全文
  • 预取是从cache或者内存取一系列的字节(大小可以保证至少包含一条指令),并设置一个待分析的位置,预分析从此位置逐字节分析,如果是前缀就设置分析状态(因为前缀可能改变默认地址尺寸和操作数的大小,影响后续...

    指令译码一般有几个过程(部件):指令预取、指令预分析(预解码)、解码。预取是从cache或者内存取一系列的字节(大小可以保证至少包含一条指令),并设置一个待分析的位置,预分析从此位置逐字节分析,如果是前缀就设置分析状态(因为前缀可能改变默认地址尺寸和操作数的大小,影响后续指令长度),直到不是前缀,就认为是操作码,x86的op code长度一般为1字节,某些2字节,查表就可以直接找出指令长度了。

    展开全文
  • 处理器一条指令需要几个时钟周期

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

    千次阅读 2015-07-31 10:22:43
    32位CPU所含有的寄存器有: ...1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 1、数据寄存器 数据寄存器主要用来保存操作数和运算结果等信息,从而节省读取操作数所需占用总线和访问存储器的时间。
  • 前面几章介绍了很多预备知识,也描绘了即将要实现的OpenMIPS处理器的蓝图,各位读者是不是早已摩拳擦掌,迫切希望一展身手了,好吧,本章我们将实现OpenMIPS处理器的第一条指令ori,为什么选择这条指令作为我们实现...
  • JSP两种包含指令标签区别

    千次阅读 2009-10-08 15:15:00
    即:这种包含可以包含任意文件,譬如:*.txt 、*.html 、* jsp 、*.inc... ...包含的文件的所有可以显示在html主体代码内容(主体代码不要出现,如html、head、body)此种包含,没有任何处理的功能,纯属于静态的...
  •  其中 编译预处理阶段,预处理器读取c源程序,进行初步的转换,即对其中的伪指令(以#开头的指令)和特殊符号等进行处理后,翻译得到个ASCII码的中间文件main.i交给编译器。预处理过程在编译时处理包含其他...
  • Abstract:此篇文章讲述的是计算机存储器、控制器、运算器的基本结构组成以及指令的具体执行顺序。  CPU包括运算器和控制器, 而主机主要包括CPU和存储器。 内容参考于:哈工大计算机组成原理(刘宏伟) ...
  • 将验证我们的OpenMIPS是否实现正确,包含:流水线是否正确、ori指令是否实现正确。在验证之前,需要首先实现指令存储器,以便OpenMIPS从中读取指令
  • 经理的皮鞋湿了,但是却没有变胖,所以经理的皮鞋是...展示了个直接执行二进制指令文件的基本方案,基于Linux内核来执行。 值得提的是,这不是什么特别有技术含量的东西,这只是个基本功,我在2006年的长春...
  • 上题在此:设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出种分配方案,使该指令系统包含:4三地址指令,8二地址指令,180单地址指令。 解析: 若能够构成指令系统,则分配的情况...
  • JSP三大指令

    千次阅读 2016-11-11 10:24:08
    .JSP指令 JSP指令概述 JSP指令的格式:指令名 attr1=”” attr2=”” %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的。 JSP指令共有三个:page、taglib、include。最常用的是page指令和taglib ...
  • 指令系统 —— 指令格式

    千次阅读 2019-07-30 11:08:25
    指令的长度是指一条指令中包含的二进制代码的位数,因为主存一般是按字节编址的,所以指令的长度一般为字节的整数倍 指令长度与机器字长没有固定的关系,它可以等于机器字长,也可以大于或小于机器字长。根据指令...
  • 首先看一道题目: ...比如指令包含取指,间址,执行,中断等机器指令!设计微程序的时候针对的是机器指令设计。那么个微程序的周期对应的就是个机器周期了。另外,CPU周期也等于机器周期。以上。
  • 指令周期:取出并执行一条指令所需要的时间(解释一条指令所需要的时间) 带有间址寻址的指令周期 因为寻址方式的不同,所以有可能是间址寻址,所以在执行周期要取出操作数,需要进行两次访存,间址周期执行的是...
  • 题目:设某机为定长指令字结构,指令长度12位,每个地址码占3位,试提出种分配方案,使该指令系统包含:4三地址指令,8二地址指令,180单地址指令。 解析:由该题: 对于三地址指令,操作码为12-3*3...
  • JVM-invokedynamic指令分析

    万次阅读 2018-11-29 14:59:22
    到了 java 8 这条指令才第次在 java 应用,用在 lambda 表达式里。在这之前的方法调用指令为 invokestatic、invokespecial、invokevirtual、invokeinterface。这四种指令和包含目标方法类名,方法名以及方法描述符...
  • 计算机组成原理 指令系统(

    千次阅读 多人点赞 2018-08-14 11:58:15
    本文主要介绍指令的基本格式以及寻址方式:   指令其实就是组有特殊意义的二进制数,...指令字长度:指令包含的二进制数的位数 机器字长:计算机能直接处理的二进制数的位数,通常与主存单元的位数一致...
  • 指令周期

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

    千次阅读 2020-03-05 20:16:57
    在8086指令系统,说明操作数所在地址的寻址方式可分为3大种(7小种) ...操作数包含指令中,紧跟着操作码并与操作码一起存放在代码段,与代码一起被取入CPU的指令队列,指令执行时不需要再访问存贮器。 立即寻...
  • 指令系统

    千次阅读 2008-04-11 15:17:00
    指令是指只是计算机执行某些操作的命令,一台计算机的所有指令的集合构成该机的指令集1、指令格式1.1、机器指令的...指令的长度是指一条指令中包含的二进制代码的位数,它取决于操作码字段的长度、操作数地址的个数
  • 安卓逆向系列教程()Dalvik 指令集 作者:飞龙 寄存器Dalvik 指令集完全基于寄存器,也就是说,没有栈。所有寄存器都是 32 位,无类型的。也就是说,虽然编译器会为每个局部变量分配个寄存器,但是理论上个...
  • ORACLE常见SET指令

    万次阅读 多人点赞 2014-07-15 11:10:19
    Oracle常见SET指令
  • jvm指令入门()

    千次阅读 2018-05-03 16:20:18
    本文旨在介绍java虚拟机(jvm)指令集合入门,在介绍指令集之前需要做一点准备工作: jvm内存分配 字节码指令集的简单性很大程度上是由于 Sun 设计了基于堆栈的 VM 架构,而不是基于寄存器...在任意时刻,一条J...
  • 每个.aspx文件只能包含一条@Page指令。@Page指令可以指定:页面代码的服务器编程语言;页面是将服务器代码直接包含在其中(即单文件页面),还是将代码包含在单独的类文件(即代码隐藏页面);调试和跟踪选项,...
  • ARM的---汇编指令

    万次阅读 多人点赞 2015-04-19 00:06:46
    带点的(一般都是ARM GNU伪汇编指令) 1. “.text”、“.data”、“.bss” 依次表示的是“以下是代码段”, “以下是初始化数据段”, “以下是未初始化数据段”。 2.".global" 定义个全局符号,通常是为ld使用...
  • 原理大家参照上篇文章MIPS CPU单周期(8条指令)的设计,主要是还是两部分:控制器+数据通路。 传送门单周期8条指令 待会再更新哈,稍等稍等。 有问题可在下方评论或者私信q453682174. ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 272,359
精华内容 108,943
关键字:

一条指令中必须包含的信息