8086簡單的指令流水線_在8086微處理器中執行流水線的指令和概念的步驟

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)。

pipelining 1

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簡單的指令流水線

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540485.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540485.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540485.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[轉載] 使用Python編寫打字訓練小程序

參考鏈接: 在Python中切換大小寫(替換) 你眼中的程序猿 別人眼中的程序猿,是什么樣子?打字如飛,各種炫酷的頁面切換,一個個好似黑客般的網站破解。可現實呢? 二指禪的敲鍵盤,寫一行代碼&#…

shell兩個數字相乘_使用8086微處理器將兩個16位數字相乘而不帶進位

shell兩個數字相乘Problem statement: 問題陳述: To perform multiplication operation between 2 16bit numbers with carry using 8086 Microprocessor. 使用8086微處理器在2個16位數字之間進行帶進位的乘法運算。 Algorithm: 算法: Load the first…

Dwr 框架簡單實例

Dwr 是一個 Java 開源庫,幫助你實現Ajax網站。 它可以讓你在瀏覽器中的Javascript代碼調用Web服務器上的Java,就像在Java代碼就在瀏覽器中一樣。 Dwr 主要包括兩部分: 在服務器上運行的 Servlet 來處理請求并把結果返回瀏覽器。 運行在瀏覽器…

[轉載] Python進階:設計模式之迭代器模式

參考鏈接: Python中的迭代器 在軟件開發領域中,人們經常會用到這一個概念——“設計模式”(design pattern),它是一種針對軟件設計的共性問題而提出的解決方案。在一本圣經級的書籍《設計模式:可復用面向對…

JavaScript | 如何為變量分配十進制,八進制和十六進制值?

Just like C programming language, we can assign integer value in the different format to the variable. 就像C編程語言一樣 ,我們可以將不同格式的整數值分配給變量。 Assigning decimal value: It can be assigned simply without using any prefix. 分配十…

路由器DHCP和DHCP中繼的配置

路由器 DHCP和DHCP中繼的配置 路由器作為DHCP服務器: 1.配置router的地址:Route(config)# hostname gateway (更改主機名字) Gateway(config)# interface gigabitethernet 0/0 …

[轉載] 大數據分析Python For循環教程

參考鏈接: Python中的迭代器函數1 大數據分析Python除了循環遍歷列表之外,for循環還有很多其他功能,在現實世界的數據科學工作中,您可能需要將numpy數組和pandas DataFrames用于其他數據結構的循環。 大數據分析Python For循環教…

node.js 爬蟲入門總結

node.js爬蟲 前端同學可能向來對爬蟲不是很感冒,覺得爬蟲需要用偏后端的語言,諸如 php , python 等。當然這是在 nodejs 前了,nodejs 的出現,使得 Javascript 也可以用來寫爬蟲了。由于 nodejs 強大的異步特性&#xf…

數組重復次數最多的元素遞歸_使用遞歸計算鏈接列表中元素的出現次數

數組重復次數最多的元素遞歸Solution: 解: Required function: 所需功能: func_occurence ( node *temp) //recursive functionInput: 輸入: A singly linked list whose address of the first node is stored in a pointer, say head and…

SecureCRT中文亂碼解決方法

服務端export LANGzh_CN.UTF-8客戶端SecureCRT編碼選擇UTF-8客戶端SecureCRT字體選擇新宋體,字符集選擇中文總結:客戶端和服務端字符編碼一致,客戶端字體字符集支持轉載于:https://blog.51cto.com/leomars/1972669

[轉載] Python 迭代器 深入理解 與應用示例

參考鏈接: Python | 可迭代和迭代器之間的區別 本篇文章簡單談談可迭代對象,迭代器和生成器之間的關系。 三者簡要關系圖 可迭代對象與迭代器 剛開始我認為這兩者是等同的,但后來發現并不是這樣;下面直接拋出結論: 1…

Python程序查找表示O(1)復雜度的數字所需的位數

Problem statement 問題陳述 Find total Number of bits required to represent a number in binary 查找以二進制表示數字所需的總位數 Example 1: 范例1: input : 10output: 4Example 2: 范例2: input : 32output : 6Formula used: 使用的公式&am…

正則split

string content "第1行導入失敗,失敗原因為: 《加班原因》字段必填";string[] resultString Regex.Split(content, "失敗原因為:", RegexOptions.IgnoreCase);foreach (string i in resultString){Console.WriteLine(i…

將八進制數制轉換為二進制,十進制和十六進制數制

1)將八進制數制轉換為二進制數制 (1) Conversion of Octal Number System to Binary Number System) To convert octal numbers into binary numbers, we can use the relationship between octal and binary numbers. 要將八進制數轉換為二進制數,我們可以使用八進…

[轉載] Python的生成器

參考鏈接: Python中的生成器Generator Python的生成器 什么是生成器 創建python迭代器的過程雖然強大,但是很多時候使用不方便。生成器是一個簡單的方式來完成迭代。簡單來說,Python的生成器是一個返回可以迭代對象的函數。 怎樣創建生…

想提高用戶訪問的響應速度和成功率還不趕快學習CDN

2019獨角獸企業重金招聘Python工程師標準>>> 課程介紹 CDN可以將源站內容分發至最接近用戶的節點,使用戶可就近取得所需內容,提高用戶訪問的響應速度和成功率。解決因分布、帶寬、服務器性能帶來的訪問延遲問題,適用于站點加速、點…

[轉載] python迭代器、生成器和裝飾器

參考鏈接: 有效地在Python中使用迭代 文章目錄 生成器生成器表達式(generator expression)通過使用yield關鍵字定義生成器并行前戲高潮 迭代器迭代器概述iter()函數 創建迭代器創建一個迭代器(類)內置迭代器工具count無限迭代器cycle 無限迭代器,從一個…

java中的starts_Java Math類靜態double nextAfter(double starts,double direction)示例

java中的starts數學類靜態double nextAfter(雙向啟動,雙向) (Math Class static double nextAfter(double starts , double directions) ) This method is available in java.lang package. 此方法在java.lang包中可用。 This method is used to return the double …

Python 核心編程(第二版)——條件和循環

Python 中的 if 子句由三部分組成: 關鍵字本身,用于判斷結果真假的條件表達式, 以及當表達式為真或者非零時執行的代碼塊。if 語句的語法如下: if expression: expr_true_suite 單個 if 語句可以通過使用布爾操作符 and , or 和 not實現多重判斷條件或…

[轉載] 【python魔術方法】迭代器(__iter__和__next__)

參考鏈接: Python __iter __()和__next __()| 將對象轉換為迭代器 文章目錄 __iter__ 和 __next__真正的迭代器總結 python里面有很多的以__開始和結尾的函數,利用它們可以完成很多復雜的邏輯代碼,而且提高了代碼的簡潔性,本文主…