計算機組成原理基礎 三 指令 運算

2021-10-24 06:37:03 字數 1820 閱讀 2620

計算+指令

一、指令週期

指令解碼 根據指令暫存器中的指令 解析成要進行什麼樣的操作,是r i j 中的哪一種指令,具體操作那些暫存器,那些資料或者記憶體位址。

執行指令 對這些r i j 指令 進行算數邏輯操作,資料傳輸或者直接位址跳轉

這樣乙個迴圈成為指令週期

取指令階段、指令解碼 指令是放在儲存器中的,是由控制器完成的

執行指令 由算數邏輯單元(alu)操作的 也就是運算器,簡單跳轉也可以直接在控制器中完成。

二、機器週期或cpu週期

cpu週期:從記憶體中讀取一條指令的最短時間成為cpu週期,相比於cpu內部執行的速度 從記憶體中讀取指令的操作算慢的了

時鐘週期:跟主頻有關,cpu可以識別的最小時間單位,就是每隔那個時間單位會驅動cpu做一次操作

乙個指令週期包含多個cpu週期 乙個cpu週期包含多個時鐘週期

三、建立資料通路

操作元件 組合邏輯元件其實就是alu 在特定的輸入條件下會生成特定的輸出

儲存元件 就是用到的暫存器,無論是通用暫存器 還是狀態暫存器

建立資料通路 就是 通過資料匯流排的方式把他們鏈結起來 完成資料的儲存 處理和傳輸

控制器 就是把 fetch decode execute 迴圈中最後一步的訊號交給alu處理,控制器就是產生不同的訊號交給alu做不同的計算

四、所需要的硬體電路

alu 組合邏輯電路

能夠進行狀態讀寫的電路元件 就是暫存器 能夠儲存我們上一次的計算結果

自動的電路 不停的實現pc暫存器的自增

解碼器電路 無論是指令decode 還是拿到記憶體位址去獲取對應的資料或者指令都需要乙個解碼的電路

五、時序邏輯電路

時鐘訊號兩個開關+磁性線圈 乙個開關a 乙個b 開關a預設是開啟的 開關b是關閉的 a 由我們手動控制 當a 將關閉時 線圈通電 將b吸開 此時斷電 線圈失去磁性,開關b就會再重新接通 這樣整個線路就是在開啟和關閉之間切換。

對於下游電路來講就是不斷的01訊號 這就是時鐘訊號 這種電路叫做反饋電路,就是自己的輸出又是自己的輸入

d觸發器 實現儲存功能 此處的邏輯比較複雜 總之使用或非門實現的 輸出的狀態還要取決於上一次的狀態 暫存器就是通過這樣的邏輯實現的。

通過反饋電路建立了時鐘訊號 然後利用時鐘訊號和閘電路組合 實現了狀態記憶的功能

六、pc暫存器 也叫程式計數器

有了時鐘訊號,可以提供定時的輸入,有了d觸發器 可以在時鐘訊號控制的時間點寫入資料

加法器的兩個輸入,乙個時鐘設定成1 乙個來自d觸發器,然後把結果在寫入d觸發器,這樣pc暫存器就實現了自增

每次自增之後,就可以去對應的d觸發器裡取值,就是下一條要執行的指令。

時序邏輯電路核心就是在固定的時間內記憶體取值 命令執行

七、解碼器

本質上是來定址的,比如有64個開關,就是有2的64次方的定址能力

八、構造乙個cpu

基本組成:d觸發器、自動計數器 解碼器、alu 乙個cpu的必須零件

自動計數器 隨著時鐘主頻不斷的自增 來作為我們的pc暫存器

在自動計數器後面鏈結解碼器,同時連線著記憶體

pc暫存器會不斷的自增,從解碼器中找到對應計數器所表示的記憶體位址,然後取出裡面的cpu指令

讀出的cpu指令會通過cpu時鐘控制,寫入指令暫存器中

寫入指令暫存器之後,再通過乙個解碼器解析出指令的opcode和運算元,而不是定址了

拿到opcode和運算元後,輸出線路連線到alu,開始進行各種算數邏輯運算,結果再次寫入暫存器或者記憶體中。

if/else 再探索

編譯器編譯之後 變成乙個cmp和jump 指令 是否跳轉以及跳轉之後的位址需要根據cmp的結果 也就是更新的pc暫存器結果 然後cpu執行。

計算機組成原理 原理篇 指令與運算 06指令跳轉

拿我們用的 intel cpu 來說,裡面差不多有幾百億個電晶體。實際上,一條條計算機指令執行起來非常複雜。好在 cpu 在軟體層面已經為我們做好了封裝。對於我們這些做軟體的程式設計師來說,我們只要知道,寫好的 變成了指令之後,是一條一條順序執行的就可以了。邏輯上,我們可以認為,cpu 其實就是由一...

計算機組成原理 指令

1 指令劃分為操作碼和位址碼字段,由二進位制數字組成 指令系統中採用不同定址方式的目的主要是縮短指令長度,擴大定址空間,提高程式設計靈活性。2 運算型指令的定址與轉移型指令的定址不同點在於運算型指今定址的是運算元,而轉移性指令定址的則是下次欲執行的指令的位址。3 零位址指令只有操作碼,沒有運算元。這...

計算機組成原理之指令(三)

目錄前言 一 什麼是計算機指令 二 常見的計算機指令 三 指令層面看 的執行過程 怕什麼真理無窮,進一寸有一寸的歡喜。胡適 在粗略學習完計原硬體相關的知識後,進入到學習計原指令,心底其實還是挺迷惑的,指令這一塊到底有啥好學的呢?具體又要怎麼學呢?學了之後對我未來編碼又有那些幫忙呢?也很清楚抱著好奇心...