8086简单的指令流水线

Any computer or machine works according to some instructions. These instructions are responsible for all the work that the machine does. But how does a machine work to understand and execute that instruction?

任何计算机或机器都按照某些说明工作。 这些说明负责机器的所有工作。 但是,机器如何工作才能理解并执行该指令?

In the 8086 microprocessors, the instructions are executed in 4 steps which are listed as follows:

在8086微处理器中, 指令按4个步骤执行,列出如下:

  1. Fetch the instruction

    获取指令

  2. Decode the instruction

    解码指令

  3. Fetch the operands

    提取操作数

  4. Execution of the instruction

    指令的执行

Any instruction that is provided to the 8086 microprocessor is executed by following the above-mentioned steps. For each instruction, all these steps are performed, i.e. if there are 3 instructions to be executed, then all these steps will be performed 3 times each.

通过遵循上述步骤,可以执行提供给8086微处理器的任何指令。 对于每个指令,将执行所有这些步骤,即,如果要执行3条指令,则所有这些步骤将分别执行3次。

Suppose, these instructions are executed sequentially, and it takes the 1-time unit for each step to run. So, it would take 12-time units (3 X 4) to execute these instructions.

假设这些指令是按顺序执行的,并且每步运行需要1单位时间。 因此,执行这些指令将需要12倍的时间(3 X 4)。

It seems less as the number of instructions is less, but a processor has o deal with a very large number of instructions, and so it should process fast to be efficient. In the 8086 microprocessor, this problem was solved by the method of pipelining.

指令数量越少,似乎就越少,但是处理器可以处理大量指令,因此它应该快速处理以提高效率。 在8086微处理器中,此问题通过流水线方法解决。

As we know that there are two separate units in 8086 microprocessors:

我们知道8086微处理器中有两个独立的单元:

  1. The BIU (Bus Interface Unit)

    BIU(总线接口单元)

  2. The EU (Execution unit)

    欧盟(执行单位)

Both these units work mutually exclusive to each other. Due to this, the parallel processing of instructions can be implied in the 8086 microprocessor, because these units are responsible for alternate steps of instruction execution. That is,

这两个单元相互排斥。 因此,可以在8086微处理器中隐含指令的并行处理,因为这些单元负责指令执行的替代步骤。 那是,

  • Fetch instruction: Done by BIU

    提取指令:由BIU完成

  • Decode Instruction: Done by EU

    解码说明:欧盟完成

  • Fetch Operands: Done by BIU

    获取操作数:由BIU完成

  • Execution: Done by EU

    执行:由欧盟完成

So, while the instruction completes its first step and goes to the second step that is handled by the EU, the BIU is idle, and in that time, the next instruction is sent to BIU. By doing so, the parallel processing of instructions is implemented, and this concept is known as pipelining.

因此,当指令完成其第一步并转到由EU处理的第二步时,BIU处于空闲状态,此时,下一条指令被发送到BIU。 通过这样做,实现了指令的并行处理,并且该概念被称为流水线。

pipelining 2

So, it can be observed that the instructions which were taking 12-time units for execution while being processed in a sequential way are now taking only 6 clock cycles through pipelining.

因此,可以观察到以流水线方式执行的指令在以顺序方式进行处理时占用了12个时间单元,而现在仅需要6个时钟周期。

翻译自: https://www.includehelp.com/embedded-system/steps-to-execute-an-instruction-and-concept-of-pipelining-in-8086-microprocessors.aspx

8086简单的指令流水线

8086简单的指令流水线_在8086微处理器中执行流水线的指令和概念的步骤相关推荐

  1. mcq 队列_MCQ | 8086微处理器中的字符串操作指令

    mcq 队列 Question 1: 问题1: A string is a collection of characters. Each Character is an of byte length ...

  2. python的执行过程_在交互式环境中执行Python程序过程详解

    前言 相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同的操作平台上还互不相同.今天,小编讲些Py ...

  3. jmeter测试客户端_如何在JMeter中执行客户端Web性能测试?

    jmeter测试客户端 在本文中,我们将看到如何使用Jmeter插件进行客户端性能测试. 我将使用jmeter webdriver插件. 在开始本主题之前,请阅读我以前的文章中有关客户端性能测试的一些 ...

  4. python执行批处理文件_如何从Python中执行批处理文件,从而改变调用进程的环境?...

    Is it possible to call init_env.bat from python in a way that allows init_env.bat to alter the envir ...

  5. oracle 根据值不同具有不同的搜索条件_在Navicat Premium中执行数据库范围内的搜索...

    如果您曾经尝试在大型数据库中定位特定列,那么我相信您会同意这可能是一项艰巨的任务.您可以从information_schema模式中收集有关DB结构的许多信息.它具有所有表和表中所有字段的列表.然后, ...

  6. python执行的命令_如何在Python中执行外部命令

    Python子进程模块允许生成新进程,从Python脚本执行外部命令. 您可以使用这些教程来安装最新版本的Python. 此外,还有许多可用于Python IDE. 就像在Ubuntu系统上安装PyC ...

  7. 记事本写的python怎么运行_如何在记事本++中执行Python文件?

    慕哥9229398 第一种选择:(最简单,推荐)打开记事本++.在菜单上转到:运行->运行.(F5).输入:C:\Python26\python.exe "$(FULL_CURRENT ...

  8. python 对应元素相乘_如何在Python中执行两个列表的元素相乘?

    使用与zip()混合的列表理解:. [a*b for a,b in zip(lista,listb)] 由于您已经在使用numpy ,所以将数据存储在一个numpy数组而不是列表中是很有意义的. 一旦 ...

  9. sql定位过程报错_如何得到plsql中执行时报错的SQL的位置行号

    如何得到 PL/SQL 中执行时报错的 SQL 的位 置行号 一.引言 在进行 PL/SQL 开发的时候经常会写以下代码, declare n1 varchar(10); n2 varchar(10) ...

最新文章

  1. 使用 NSUserDefaults 存储字典的一个坑
  2. (转载)为什么欧美拿金牌不感谢祖国
  3. 【计算几何】多边形交集
  4. tomcat安装部署
  5. 【51单片机快速入门指南】4.3.3: MPU6050使用Mahony AHRS算法实现六轴姿态融合获取四元数、欧拉角
  6. 信息学奥赛一本通 1123:图像相似度 | OpenJudge NOI 1.8 06:图像相似度
  7. (68)信号发生器DDS协议(第14天)
  8. fpga供电电压偏低会怎样_正点原子【FPGA-开拓者】第三章 硬件资源详解
  9. Android中需要了解的数据结构(一)
  10. python电脑录屏软件_可以推荐一款电脑录屏软件吗?
  11. Ubuntu压缩视频
  12. 外接显示器显示“HDMI电缆没有连接”怎么办?
  13. word打开很慢解决办法
  14. 静态网页制作(html+css)、css浮动,练习(网页布局),清除浮动
  15. 为何要做冒烟测试 如何做冒烟测试
  16. 流形上的预积分(上)
  17. 复旦大学计算机科学技术学院院长姜育刚:人工智能算法治理|达观WAIC回顾
  18. CANoe.DiVa 操作指南 - 时间参数配置
  19. 基因数据处理44之cloud-scale-bwamem安装
  20. 嵌入式设备显示屏相关概念汇总

热门文章

  1. JdbcTemplate使用小结
  2. codeforces C. Design Tutorial: Make It Nondeterministic
  3. mysql中的生日应该是什么类型_MySQL中的定点数类型
  4. ubuntu18安装python3.6.8_ubuntu 18.04 + Python 3.6.8 更换软件安装源
  5. java 代码块的作用_4种Java代码块的作用讲解
  6. TensorFlow构建二维数据拟合模型(1)
  7. TensorFlow实验(2)
  8. pos共识机制_OK区块链60讲 | 第17集:什么是PoS共识机制
  9. 【Java从入门到头秃专栏 4】语法篇(三) :字符串 数组
  10. Babylon-AST初探-代码更新删除(Update Remove)